$PAGE->requires->js_module($jsmodule); $redirecturl = new moodle_url('/mod/organizer/view.php', array('id' => $cm->id, 'mode' => $mode, 'action' => $action)); $logurl = 'view_action.php?id=' . $cm->id . '&mode=' . $mode . '&action=' . $action; require_capability('mod/organizer:editslots', $context); if (!$slots) { $redirecturl->param('messages[]', 'message_warning_no_slots_selected'); redirect($redirecturl); } if (!organizer_security_check_slots($slots)) { print_error('Security failure: Some of selected slots don\'t belong to this organizer!'); } $mform = new organizer_edit_slots_form(null, array('id' => $cm->id, 'mode' => $mode, 'slots' => $slots), 'post', '', array('name' => 'form_edit')); if ($data = $mform->get_data()) { $slotids = organizer_update_appointment_slot($data); organizer_prepare_and_send_message($data, 'edit_notify:teacher'); organizer_prepare_and_send_message($data, 'edit_notify:student'); // ---------------------------------------- MESSAGE!!! $newurl = $redirecturl->out(); foreach ($slotids as $slotid) { $newurl .= '&slots[]=' . $slotid; } $event = \mod_organizer\event\slot_updated::create(array('objectid' => $PAGE->cm->id, 'context' => $PAGE->context)); $event->trigger(); redirect($newurl); } else { if ($mform->is_cancelled()) { redirect($redirecturl); } else { organizer_display_form($mform, get_string('title_edit', 'organizer')); } }
function organizer_remind_all($recipient = null, $custommessage = "") { global $DB; list($cm, $course, $organizer, $context) = organizer_get_course_module_data(); if ($recipient != null) { $entries = $DB->get_records_list('user', 'id', array($recipient)); } else { if ($cm->groupingid == 0) { $entries = get_enrolled_users($context, 'mod/organizer:register'); } else { $query = "SELECT u.* FROM {user} u\n INNER JOIN {groups_members} gm ON u.id = gm.userid\n INNER JOIN {groups} g ON gm.groupid = g.id\n INNER JOIN {groupings_groups} gg ON g.id = gg.groupid\n WHERE gg.groupingid = :grouping"; $par = array('grouping' => $cm->groupingid); $entries = $DB->get_records_sql($query, $par); } } $query = "SELECT DISTINCT u.id FROM {organizer} o\n INNER JOIN {organizer_slots} s ON o.id = s.organizerid\n INNER JOIN {organizer_slot_appointments} a ON s.id = a.slotid\n INNER JOIN {user} u ON a.userid = u.id\n WHERE o.id = :id AND (a.attended = 1 OR a.attended IS NULL)"; $par = array('id' => $organizer->id); $nonrecepients = $DB->get_fieldset_sql($query, $par); $count = 0; foreach ($entries as $entry) { if (!in_array($entry->id, $nonrecepients)) { organizer_prepare_and_send_message(array('user' => $entry->id, 'organizer' => $organizer, 'custommessage' => $custommessage), 'register_reminder:student'); // ---------------------------------------- MESSAGE!!! $count++; } } return $count; }
print_error('Security failure: Selected slot doesn\'t belong to this organizer!'); } if (!organizer_organizer_student_action_allowed($action, $slot)) { print_error('Inconsistent state: Cannot execute registration action! Please navigate back and refresh your browser!'); } $group = organizer_fetch_my_group(); $groupid = $group ? $group->id : 0; $success = organizer_reregister_appointment($slot, $groupid); if ($success) { $event = \mod_organizer\event\appointment_removed::create(array('objectid' => $PAGE->cm->id, 'context' => $PAGE->context)); $event->trigger(); $event = \mod_organizer\event\appointment_added::create(array('objectid' => $PAGE->cm->id, 'context' => $PAGE->context)); $event->trigger(); organizer_prepare_and_send_message($slot, 'register_notify:teacher:reregister'); if ($group) { organizer_prepare_and_send_message($slot, 'group_registration_notify:student:reregister'); } } else { if (organizer_is_group_mode()) { $redirecturl->param('messages[]', 'message_error_slot_full_group'); } else { $redirecturl->param('messages[]', 'message_error_slot_full_single'); } } redirect($redirecturl); } else { print_error('Either a wrong method or no method was selected!'); } } } die;