Esempio n. 1
0
$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;