. require_once(dirname(__DIR__, 2) . '/config.php'); global $CFG; defined('MOODLE_INTERNAL') || die(); require_once($CFG->dirroot . '/local/webhooks/classes/local/api.php'); require_once($CFG->dirroot . '/local/webhooks/classes/output/services_table.php'); require_once($CFG->libdir . '/adminlib.php'); use local_webhooks\local\api; use local_webhooks\output\services_table; $deleteid = optional_param('deleteid', 0, PARAM_INT); $hideshowid = optional_param('hideshowid', 0, PARAM_INT); $editpage = '/local/webhooks/service.php'; $mainpage = '/local/webhooks/index.php'; $baseurl = new moodle_url($mainpage); $context = context_system::instance(); admin_externalpage_setup('local_webhooks', '', ['contextid' => $context->contextlevel], $baseurl, []); // Deleting the existing service. if ($deleteid !== 0 && confirm_sesskey()) { api::del_service($deleteid); redirect($PAGE->url, new lang_string('deleted', 'moodle')); } // Setting status to existing service. if ($hideshowid !== 0 && confirm_sesskey()) { $service = api::get_service($hideshowid); $service->status = !filter_var($service->status, FILTER_VALIDATE_BOOLEAN); api::set_service($service); redirect($PAGE->url, new lang_string('changessaved', 'moodle')); } // Page header. $titlepage = new lang_string('pluginname', 'local_webhooks'); $PAGE->set_heading($titlepage); $PAGE->set_title($titlepage); echo $OUTPUT->header(); // Adds the add button. $addserviceurl = new moodle_url($editpage, ['sesskey' => sesskey()]); echo $OUTPUT->single_button($addserviceurl, new lang_string('add', 'moodle')); // Separation. echo html_writer::empty_tag('br'); // Displays the table. $table = new services_table('local-webhooks-services'); $table->define_baseurl($baseurl); $table->out(25, true); // Footer. echo $OUTPUT->footer();