From 2d2a683549393c54d12d2de1918dd1f49f5bd0c8 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 23 Oct 2017 07:13:42 +0400 Subject: Added action handlers --- editservice.php | 47 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/editservice.php b/editservice.php index a8bda17..7b2fcb7 100644 --- a/editservice.php +++ b/editservice.php @@ -23,16 +23,19 @@ */ require_once(__DIR__ . "/../../config.php"); -require_once(__DIR__ . "/classes/form.php"); +require_once(__DIR__ . "/classes/forms.php"); $idservice = optional_param("idservice", 0, PARAM_INT); require_login(); -$managerservice = new moodle_url("/local/webhooks/managerservice.php"); -$baseurl = new moodle_url("/local/webhooks/editservice.php"); -$PAGE->set_url($baseurl); +/* Link generation */ +$urlparameters = array("idservice" => $idservice); +$managerservice = new moodle_url("/local/webhooks/managerservice.php", $urlparameters); +$baseurl = new moodle_url("/local/webhooks/editservice.php", $urlparameters); +$PAGE->set_url($baseurl, $urlparameters); +/* Configure the context of the page */ $context = context_system::instance(); $PAGE->set_context($context); @@ -40,12 +43,35 @@ $PAGE->set_context($context); $titlepage = new lang_string("editserviceadds", "local_webhooks"); $servicerecord = new stdClass; -if (boolval($idservice)) { +/* Create an editing form */ +$mform = new \local_webhooks\service_edit_form($PAGE->url); + +/* Cancel processing */ +if ($mform->is_cancelled()) { + redirect($managerservice); +} + +/* Getting the data */ +if ($idediting = boolval($idservice)) { + $servicerecord = $DB->get_record("local_webhooks_service", array("id" => $idservice), "*", MUST_EXIST); $titlepage = new lang_string("editserviceedits", "local_webhooks"); - $servicerecord = $DB->get_record( - "local_webhooks_service", - array("id" => $idservice), - "*", MUST_EXIST); + $mform->set_data($servicerecord); +} + +/* Processing of received data */ +if ($data = $mform->get_data()) { + if (empty($data->enable)) { + $data->enable = 0; + } + + if ($idediting) { + $data->id = $idservice; + $DB->update_record("local_webhooks_service", $data); + } else { + $DB->insert_record("local_webhooks_service", $data); + } + + redirect($managerservice); } /* Page template */ @@ -53,9 +79,6 @@ $PAGE->set_pagelayout("admin"); $PAGE->set_title($titlepage); $PAGE->set_heading($titlepage); -/* Create an editing form */ -$mform = new \local_webhooks\service_edit_form(); - /* The page title */ $PAGE->navbar->add(new lang_string("local")); $PAGE->navbar->add(new lang_string("pluginname", "local_webhooks")); -- cgit v1.2.3