예제 #1
0
            $sessionsids = explode('_', $fromform->ids);
            $duration = $formdata->durtime['hours'] * HOURSECS + $formdata->durtime['minutes'] * MINSECS;
            $att->update_sessions_duration($sessionsids, $duration);
            redirect($att->url_manage(), get_string('sessionupdated', 'attforblock'));
        }
        if ($slist === '') {
            print_error('nosessionsselected', 'attforblock', $att->url_manage());
        }
        break;
}
$output = $PAGE->get_renderer('mod_attforblock');
$tabs = new attforblock_tabs($att, attforblock_tabs::TAB_ADD);
echo $output->header();
echo $output->heading(get_string('attendanceforthecourse', 'attforblock') . ' :: ' . $course->fullname);
echo $output->render($tabs);
$mform->display();
echo $OUTPUT->footer();
function construct_sessions_data_for_add($formdata)
{
    global $CFG;
    $duration = $formdata->durtime['hours'] * HOURSECS + $formdata->durtime['minutes'] * MINSECS;
    $now = time();
    $sessions = array();
    if (isset($formdata->addmultiply)) {
        $startdate = $formdata->sessiondate;
        $starttime = $startdate - usergetmidnight($startdate);
        $enddate = $formdata->sessionenddate + DAYSECS;
        // because enddate in 0:0am
        if ($enddate < $startdate) {
            return NULL;
        }
        if (!($sessions = get_records_list('attendance_sessions', 'id', $slist))) {
            error('No such session in this course');
        }
        foreach ($sessions as $sess) {
            $sess->duration = $fromform->durtime['hours'] * HOURSECS + $fromform->durtime['minutes'] * MINSECS;
            $sess->timemodified = $now;
            $startdate = $sess->sessdate;
            $duration = $fromform->durtime['hours'] * HOURSECS + $fromform->durtime['minutes'] * MINSECS;
            $sess->sessionend = $startdate + $duration;
            update_record('attendance_sessions', $sess);
        }
        add_to_log($course->id, 'attforblock', 'Session updated', 'manage.php?id=' . $id, $user->lastname . ' ' . $user->firstname);
        redirect('manage.php?id=' . $id, get_string('sessionupdated', 'attforblock'), 3);
    }
    print_heading(get_string('update', 'attforblock') . ' ' . get_string('attendanceforthecourse', 'attforblock') . ' :: ' . $course->fullname);
    $mform_duration->display();
}
//////////////////////////////////////////////////////////
// Change teacher
//////////////////////////////////////////////////////////
if ($action === 'changeteacher') {
    $fromform = data_submitted();
    $slist = isset($fromform->sessid) ? implode('_', array_keys($fromform->sessid)) : '';
    $mform_teacher = new mod_attforblock_teacher_form('sessions.php', array('course' => $course, 'cm' => $cm, 'modcontext' => $context, 'ids' => $slist));
    if ($mform_teacher->is_cancelled()) {
        redirect('manage.php?id=' . $id);
    }
    if ($fromform = $mform_teacher->get_data()) {
        $slist = implode(',', explode('_', $fromform->ids));
        if (!($sessions = get_records_list('attendance_sessions', 'id', $slist))) {
            error('No such session in this course');