. /** * Restore settings page. * * @package local_webhooks * @copyright 2017 "Valentin Popov" * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once(__DIR__ . "/../../config.php"); require_once(__DIR__ . "/classes/editform.php"); require_once($CFG->libdir . "/adminlib.php"); /* Link generation */ $managerservice = new moodle_url("/local/webhooks/managerservice.php"); $baseurl = new moodle_url("/local/webhooks/restorebackup.php"); /* Configure the context of the page */ admin_externalpage_setup("local_webhooks", "", null, $baseurl, array()); $context = context_system::instance(); /* Create an editing form */ $mform = new \local_webhooks\service_backup_form($PAGE->url); /* Cancel processing */ if ($mform->is_cancelled()) { redirect($managerservice); } /* Processing the received file */ if ($data = $mform->get_data() && confirm_sesskey()) { $content = $mform->get_file_content("backupfile"); $callbacks = unserialize(gzuncompress(base64_decode($content))); $DB->delete_records("local_webhooks_service"); foreach ($callbacks as $callback) { $DB->insert_record("local_webhooks_service", $callback); } /* Run the event */ $event = \local_webhooks\event\backup_restored::create(array("context" => $context, "objectid" => 0)); $event->trigger(); redirect($managerservice, new lang_string("restorefinished", "moodle")); } /* The page title */ $titlepage = new lang_string("backup", "moodle"); $PAGE->navbar->add($titlepage); $PAGE->set_heading($titlepage); $PAGE->set_title($titlepage); echo $OUTPUT->header(); /* Displays the form */ $mform->display(); echo $OUTPUT->footer();