. /** * Page for editing the service. * * @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/service_form.php'); require_once(__DIR__ . '/lib.php'); require_once($CFG->libdir . '/adminlib.php'); /* Optional parameters */ $serviceid = optional_param('serviceid', 0, PARAM_INT); /* Link generation */ $urlparameters = array('serviceid' => $serviceid); $baseurl = new moodle_url('/local/webhooks/editservice.php', $urlparameters); $managerservice = new moodle_url('/local/webhooks/index.php'); /* Configure the context of the page */ admin_externalpage_setup('local_webhooks', '', null, $baseurl); $context = context_system::instance(); /* Create an editing form */ $mform = new service_edit_form($PAGE->url); /* Cancel processing */ if ($mform->is_cancelled()) { redirect($managerservice); } /* Getting the data */ $servicerecord = new stdClass(); if (($editing = (bool) $serviceid) === true) { $servicerecord = local_webhooks_get_record($serviceid); if (is_array($servicerecord->events)) { $events = array(); /* Escaping event names */ foreach ($servicerecord->events as $eventname => $eventstatus) { $eventname = base64_encode($eventname); $events[$eventname] = $eventstatus; } $servicerecord->events = $events; } $mform->set_data($servicerecord); } /* Processing of received data */ if (!empty($data = $mform->get_data())) { if (is_array($data->events)) { $events = array(); /* Deciphering event names */ foreach ($data->events as $eventname => $eventstatus) { $eventname = (string) base64_decode($eventname); $events[$eventname] = $eventstatus; } $data->events = $events; } if ($editing) { $data->id = $serviceid; local_webhooks_update_record($data, false); redirect($managerservice, new lang_string('eventwebserviceserviceupdated', 'webservice')); } else { local_webhooks_update_record($data); redirect($managerservice, new lang_string('eventwebserviceservicecreated', 'webservice')); } } /* The page title */ $titlepage = new lang_string('externalservice', 'webservice'); $PAGE->navbar->add($titlepage); $PAGE->set_heading($titlepage); $PAGE->set_title($titlepage); echo $OUTPUT->header(); /* Displays the form */ $mform->display(); echo $OUTPUT->footer();