. /** * Handles loading a customcert template. * * @package mod_customcert * @copyright 2013 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once('../../config.php'); $tid = required_param('tid', PARAM_INT); $ltid = required_param('ltid', PARAM_INT); // The template to load. $confirm = optional_param('confirm', 0, PARAM_INT); $template = $DB->get_record('customcert_templates', array('id' => $tid), '*', MUST_EXIST); $template = new \mod_customcert\template($template); $loadtemplate = $DB->get_record('customcert_templates', array('id' => $ltid), '*', MUST_EXIST); $loadtemplate = new \mod_customcert\template($loadtemplate); if ($cm = $template->get_cm()) { require_login($cm->course, false, $cm); } else { require_login(); } $template->require_manage(); if ($template->get_context()->contextlevel == CONTEXT_MODULE) { $customcert = $DB->get_record('customcert', ['id' => $cm->instance], '*', MUST_EXIST); $title = $customcert->name; $heading = format_string($title); } else { $title = $SITE->fullname; $heading = $title; } // Check that they have confirmed they wish to load the template. if ($confirm && confirm_sesskey()) { // First, remove all the existing elements and pages. $sql = "SELECT e.* FROM {customcert_elements} e INNER JOIN {customcert_pages} p ON e.pageid = p.id WHERE p.templateid = :templateid"; if ($elements = $DB->get_records_sql($sql, array('templateid' => $template->get_id()))) { foreach ($elements as $element) { // Get an instance of the element class. if ($e = \mod_customcert\element_factory::get_element_instance($element)) { $e->delete(); } } } // Delete the pages. $DB->delete_records('customcert_pages', array('templateid' => $template->get_id())); // Copy the items across. $loadtemplate->copy_to_template($template->get_id()); // Redirect. $url = new moodle_url('/mod/customcert/edit.php', array('tid' => $tid)); redirect($url); } // Create the link options. $nourl = new moodle_url('/mod/customcert/edit.php', array('tid' => $tid)); $yesurl = new moodle_url('/mod/customcert/load_template.php', array('tid' => $tid, 'ltid' => $ltid, 'confirm' => 1, 'sesskey' => sesskey())); $pageurl = new moodle_url('/mod/customcert/load_template.php', array('tid' => $tid, 'ltid' => $ltid)); \mod_customcert\page_helper::page_setup($pageurl, $template->get_context(), $title); $str = get_string('editcustomcert', 'customcert'); $link = new moodle_url('/mod/customcert/edit.php', array('tid' => $template->get_id())); $PAGE->navbar->add($str, new \action_link($link, $str)); $PAGE->navbar->add(get_string('loadtemplate', 'customcert')); // Show a confirmation page. echo $OUTPUT->header(); echo $OUTPUT->heading($heading); echo $OUTPUT->confirm(get_string('loadtemplatemsg', 'customcert'), $yesurl, $nourl); echo $OUTPUT->footer();