. /** * Defines the form of editing the service. * * @package local_webhooks * @copyright 2017 "Valentin Popov" * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace local_webhooks; defined("MOODLE_INTERNAL") || die(); require_once($CFG->libdir . "/formslib.php"); use report_eventlist_list_generator; use lang_string; use moodleform; /** * Description editing form definition. * * @copyright 2017 "Valentin Popov" * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class service_edit_form extends moodleform { /** * @param string $baseurl */ public function __construct($baseurl) { parent::__construct($baseurl); } /** * Unpacks data for display. * * @param object $record */ public function set_data($record) { $record->events = unserialize(gzuncompress(base64_decode($record->events))); return parent::set_data($record); } /** * Defines the standard structure of the form. */ protected function definition() { $mform =& $this->_form; /* Form heading */ $mform->addElement("header", "editserviceheader", new lang_string("service", "webservice")); /* Name of the service */ $mform->addElement("text", "title", new lang_string("name", "moodle"), array("size" => 60)); $mform->setType("title", PARAM_NOTAGS); $mform->addRule("title", null, "required"); /* Callback address */ $mform->addElement("text", "url", new lang_string("url", "moodle"), array("size" => 60)); $mform->setType("url", PARAM_URL); $mform->addRule("url", null, "required"); /* Enabling the service */ $mform->addElement("checkbox", "enable", new lang_string("enable", "moodle")); $mform->setType("enable", PARAM_BOOL); $mform->setDefault("enable", 1); $mform->setAdvanced("enable"); /* Token */ $mform->addElement("text", "token", new lang_string("token", "webservice"), array("size" => 60)); $mform->setType("token", PARAM_NOTAGS); /* Form heading */ $mform->addElement("header", "editserviceheaderevent", new lang_string("edulevel", "moodle")); /* List of events */ $eventlist = report_eventlist_list_generator::get_all_events_list(true); $events = array(); /* Formation of the list of elements */ foreach ($eventlist as $event) { $events[$event["component"]][] =& $mform->createElement("advcheckbox", $event["eventname"], $event["eventname"]); } /* Displays groups of items */ foreach ($events as $key => $event) { $mform->addGroup($event, "events", $key, "
", true); } /* Control Panel */ $this->add_action_buttons(true); } }