$count = organizer_remind_all($recipient, $data->message_custommessage['text']);
    $redirecturl->param('data[count]', $count);
    if ($count == 1) {
        $redirecturl->param('messages[]', 'message_info_reminders_sent_sg');
    } else {
        $redirecturl->param('messages[]', 'message_info_reminders_sent_pl');
    }
    $event = \mod_organizer\event\appointment_reminder_sent::create(array('objectid' => $PAGE->cm->id, 'context' => $PAGE->context));
    $event->trigger();
    $redirecturl = $redirecturl->out();
    redirect($redirecturl);
} else {
    if ($mform->is_cancelled()) {
        redirect($redirecturl);
    } else {
        organizer_display_form($mform, get_string('organizer_remind_all_title', 'organizer'));
    }
}
print_error('If you see this, something went wrong with delete action!');
die;
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";
            $count = count($slotids = organizer_add_appointment_slots($data));
            if ($count == 0) {
                $redirecturl->param('messages[]', 'message_warning_no_slots_added');
            } else {
                $event = \mod_organizer\event\slot_created::create(array('objectid' => $PAGE->cm->id, 'context' => $PAGE->context));
                $event->trigger();
                $redirecturl->param('data[count]', $count);
                if ($count == 1) {
                    $redirecturl->param('messages[]', 'message_info_slots_added_sg');
                } else {
                    $redirecturl->param('messages[]', 'message_info_slots_added_pl');
                }
                $redirecturl = $redirecturl->out();
                foreach ($slotids as $slotid) {
                    $redirecturl .= '&slots[]=' . $slotid;
                }
            }
            redirect($redirecturl);
        } else {
            print_error('Something went wrong with the submission of the add action!');
        }
    }
} else {
    if ($mform->is_cancelled()) {
        redirect($redirecturl);
    } else {
        organizer_display_form($mform, get_string('title_add', 'organizer'));
    }
}
print_error('If you see this, something went wrong with add action!');
die;
//$tsort = optional_param('tsort', null, PARAM_ALPHA);
$url = new moodle_url('/mod/organizer/comment_edit.php');
$url->param('id', $cm->id);
$PAGE->set_url($url);
$PAGE->set_pagelayout('standard');
$PAGE->set_title($organizer->name);
$PAGE->set_heading($course->fullname);
$jsmodule = array('name' => 'mod_organizer', 'fullpath' => '/mod/organizer/module.js', 'requires' => array('node', 'event', 'node-screen', 'panel', 'node-event-delegate'));
$PAGE->requires->js_module($jsmodule);
$redirecturl = new moodle_url('/mod/organizer/view.php', array('id' => $cm->id));
$logurl = new moodle_url('/mod/organizer/comment_edit.php', array('id' => $cm->id));
require_capability('mod/organizer:comment', $context);
if (!organizer_security_check_slots($slot)) {
    print_error('Security failure: Selected slot doesn\'t belong to this organizer!');
}
$mform = new organizer_comment_slot_form(null, array('id' => $cm->id, 'slot' => $slot));
if (($data = $mform->get_data()) && confirm_sesskey()) {
    $app = $DB->get_record('organizer_slot_appointments', array('slotid' => $slot, 'userid' => $USER->id));
    organizer_update_comments($app->id, $data->comments);
    $event = \mod_organizer\event\appointment_commented::create(array('objectid' => $PAGE->cm->id, 'context' => $PAGE->context));
    $event->trigger();
    redirect($redirecturl);
} else {
    if ($mform->is_cancelled()) {
        redirect($redirecturl);
    } else {
        organizer_display_form($mform, get_string('title_comment', 'organizer'));
    }
}
print_error('If you see this, something went wrong with delete action!');
die;
    redirect($redirecturl);
} else {
    if ($mform->is_cancelled()) {
        // form canceled
        unset($_SESSION['organizer_slots']);
        redirect($redirecturl);
    } else {
        // display printpreview
        if ($slots == NULL || count($slots) == 0) {
            $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!');
        }
        organizer_display_form($mform, get_string('title_print', 'organizer'), true);
    }
}
//print_error('If you see this, something went wrong with print action!');
die;
function organizer_organizer_student_action_allowed($action, $slot)
{
    global $DB;
    if (!$DB->record_exists('organizer_slots', array('id' => $slot))) {
        return false;
    }
    $slotx = new organizer_slot($slot);
    list($cm, $course, $organizer, $context) = organizer_get_course_module_data();
    $canregister = has_capability('mod/organizer:register', $context, null, false);
    $canunregister = has_capability('mod/organizer:unregister', $context, null, false);
    $canreregister = $canregister && $canunregister;
            $redirecturl->param('messages[0]', 'message_info_slots_deleted');
            $slots = $DB->get_records('organizer_slots', array('organizerid' => $organizer->id));
            $places_total = 0;
            foreach ($slots as $slot) {
                $places_total += $slot->maxparticipants;
            }
            $registrants_total = count(get_enrolled_users($context, 'mod/organizer:register'));
        }
        $free_total = $places_total - $appointments_total;
        $notregistered = $registrants_total - $appointments_total;
        $redirecturl->param('data[deleted]', $slots_deleted);
        $redirecturl->param('data[notified]', $notified);
        // anzahl benachrichtigter studenten
        $redirecturl->param('data[freeslots]', $free_total);
        // freie slots
        $redirecturl->param('data[notregistered]', $notregistered);
        // anzahl noch nicht angemeldeter studenten
        $prefix = $notregistered > $free_total ? 'warning' : 'info';
        $suffix = $organizer->isgrouporganizer ? '_group' : '';
        $redirecturl->param('messages[1]', 'message_' . $prefix . '_available' . $suffix);
    }
    redirect($redirecturl);
} else {
    if ($mform->is_cancelled()) {
        redirect($redirecturl);
    } else {
        organizer_display_form($mform, get_string('title_delete', 'organizer'));
    }
}
print_error('If you see this, something went wrong with delete action!');
die;