. /** * Edit an existing or new invitation to view a studyplan * @package local_treestudyplan * @copyright 2023 P.M. Kuipers * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once("../../config.php"); require_once("./lib.php"); require_once($CFG->libdir.'/weblib.php'); require_once($CFG->dirroot.'/local/treestudyplan/classes/reportinvite_form.php'); $add = optional_param('add', '', PARAM_ALPHANUM); // Module name. $update = optional_param('update', 0, PARAM_INT); $resend = optional_param('resend', 0, PARAM_INT); $delete = optional_param('delete', 0, PARAM_INT); $systemcontext = context_system::instance(); $PAGE->set_url("/local/treestudyplan/edit-invite.php"); $PAGE->set_pagelayout('base'); $PAGE->set_context($systemcontext); if ($update > 0) { $PAGE->set_title(get_string('invite_desc_edit', 'local_treestudyplan')); $PAGE->set_heading(get_string('invite_desc_edit', 'local_treestudyplan')); } else { $PAGE->set_title(get_string('invite_desc_new', 'local_treestudyplan')); $PAGE->set_heading(get_string('invite_desc_new', 'local_treestudyplan')); } // Check if user has capability to manage study plan units. require_login(); print $OUTPUT->header(); if (!empty($add)) { $data = [ 'add' => 1, ]; } else if (!empty($update)) { $data = $DB->get_record("local_treestudyplan_invit", ['id' => $update]); $data->update = $update; if (empty($data) || $data->user_id != $USER->id) { throw new \moodle_exception('invalidaction', 'local_treestudyplan');; exit; } } else if (!empty($resend)) { $data = $DB->get_record("local_treestudyplan_invit", ['id' => $resend]); $data->resend = $resend; if (empty($data) || $data->user_id != $USER->id) { throw new \moodle_exception('invalidaction', 'local_treestudyplan');; exit; } // Do some resending of an invitation. local_treestudyplan_send_invite($data->id); redirect("$CFG->wwwroot/local/treestudyplan/invitations.php?sent={$resend}"); print $OUTPUT->footer(); exit; } else if (!empty($delete)) { $data = $DB->get_record("local_treestudyplan_invit", ['id' => $delete]); $data->delete = $delete; if (empty($data) || $data->user_id != $USER->id) { throw new \moodle_exception('invalidaction', 'local_treestudyplan');; exit; } $DB->delete_records('local_treestudyplan_invit', ['id' => $data->delete]); redirect("$CFG->wwwroot/local/treestudyplan/invitations.php"); print $OUTPUT->footer(); exit; } else { throw new \moodle_exception('invalidaction', 'local_treestudyplan');; } $mform = new reportinvite_form(); $mform->set_data($data); if ($mform->is_cancelled()) { redirect("$CFG->wwwroot/local/treestudyplan/invitations.php"); } else if ($data = $mform->get_data()) { if (!empty($data->update)) { $id = $data->update; $data->id = $id; $DB->update_record('local_treestudyplan_invit', $data); redirect("$CFG->wwwroot/local/treestudyplan/invitations.php"); } else if (!empty($data->add)) { $id = $DB->insert_record("local_treestudyplan_invit", $data, true); // Send invitaion mail. local_treestudyplan_send_invite($id); redirect("$CFG->wwwroot/local/treestudyplan/invitations.php?sent={$id}"); } else if (!empty($data->resend)) { exit; } else if (!empty($data->delete)) { exit; } else { throw new \moodle_exception("invaliddata", 'local_treestudyplan');; } exit; } else { $data = null; $mform->display(); } print $OUTPUT->footer();