示例#1
0
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
$att = $DB->get_record('attforblock', array('id' => $cm->instance), '*', MUST_EXIST);
require_login($course, true, $cm);
$att = new attforblock($att, $cm, $course, $PAGE->context, $pageparams);
$att->perm->require_manage_capability();
$PAGE->set_url($att->url_sessions());
$PAGE->set_title($course->shortname . ": " . $att->name);
$PAGE->set_heading($course->fullname);
$PAGE->set_cacheable(true);
$PAGE->set_button($OUTPUT->update_module_button($cm->id, 'attforblock'));
$PAGE->navbar->add($att->name);
$formparams = array('course' => $course, 'cm' => $cm, 'modcontext' => $PAGE->context);
switch ($att->pageparams->action) {
    case att_sessions_page_params::ACTION_ADD:
        $url = $att->url_sessions(array('action' => att_sessions_page_params::ACTION_ADD));
        $mform = new mod_attforblock_add_form($url, $formparams);
        if ($formdata = $mform->get_data()) {
            $sessions = construct_sessions_data_for_add($formdata);
            $att->add_sessions($sessions);
            redirect($url, get_string('sessionsgenerated', 'attforblock'));
        }
        break;
    case att_sessions_page_params::ACTION_UPDATE:
        $sessionid = required_param('sessionid', PARAM_INT);
        $url = $att->url_sessions(array('action' => att_sessions_page_params::ACTION_UPDATE, 'sessionid' => $sessionid));
        $formparams['sessionid'] = $sessionid;
        $mform = new mod_attforblock_update_form($url, $formparams);
        if ($mform->is_cancelled()) {
            redirect($att->url_manage());
        }
        if ($formdata = $mform->get_data()) {
    error("No such user in this course");
}
if (!($context = get_context_instance(CONTEXT_MODULE, $cm->id))) {
    print_error('badcontext');
}
require_capability('mod/attforblock:manageattendances', $context);
$navlinks[] = array('name' => $attforblock->name, 'link' => "view.php?id={$id}", 'type' => 'activity');
$navlinks[] = array('name' => get_string($action, 'attforblock'), 'link' => null, 'type' => 'activityinstance');
$navigation = build_navigation($navlinks);
print_header("{$course->shortname}: " . $attforblock->name . ' - ' . get_string($action, 'attforblock'), $course->fullname, $navigation, "", "", true, " ", navmenu($course));
//////////////////////////////////////////////////////////
// Adding sessions
//////////////////////////////////////////////////////////
if ($action === 'add') {
    show_tabs($cm, $context, 'add');
    $mform_add = new mod_attforblock_add_form('sessions.php', array('course' => $course, 'cm' => $cm, 'modcontext' => $context));
    if ($fromform = $mform_add->get_data()) {
        $duration = $fromform->durtime['hours'] * HOURSECS + $fromform->durtime['minutes'] * MINSECS;
        $now = time();
        // check for new teacher in text box and insert the new teacher to the attendance_teachers table
        if ($fromform->hteacher > '') {
            $newteacher->teacher = $fromform->hteacher;
            $addteacher = insert_record('attendance_teachers', $newteacher);
        }
        // check for new subject in text box and insert the new subject to the attendance_subjects table
        if ($fromform->hsubject > '') {
            $newsubject->subject = $fromform->hsubject;
            $addsubject = insert_record('attendance_subjects', $newsubject);
        }
        // check for new session title in text box and insert the new title to the attendance_sessiontitles table
        if ($fromform->hsessiontitle > '') {