. /** * Page of the service editor. * * @copyright 2018 'Valentin Popov' * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @package local_webhooks */ require_once __DIR__ . '/../../config.php'; require_once $CFG->dirroot . '/local/webhooks/classes/ui_forms_plugin.php'; require_once $CFG->dirroot . '/local/webhooks/lib.php'; require_once $CFG->libdir . '/adminlib.php'; $serviceId = optional_param('serviceid', 0, PARAM_INT); $urlParameters = array('serviceid' => $serviceId); $baseUrl = new moodle_url('/local/webhooks/service.php', $urlParameters); $mainPage = new moodle_url('/local/webhooks/index.php'); admin_externalpage_setup('local_webhooks', '', null, $baseUrl, array()); $context = context_system::instance(); $mForm = new local_webhooks_service_edit_form($PAGE->url); $formData = (array) $mForm->get_data(); /* Cancel */ if ($mForm->is_cancelled()) { redirect($mainPage); } /* Updating the data */ if (!empty($formData) && confirm_sesskey()) { if (isset($formData['events'])) { $formData['events'] = array_keys($formData['events']); } if (!empty($serviceId)) { $formData['id'] = $serviceId; local_webhooks_api::update_service($formData); } else { local_webhooks_api::create_service($formData); } redirect($mainPage, new lang_string('changessaved', 'moodle')); } /* Loading service data */ if (!empty($serviceId)) { $service = local_webhooks_api::get_service($serviceId); $service->events = array_fill_keys($service->events, 1); $mForm->set_data($service); } /* 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(); /* Footer */ echo $OUTPUT->footer();