Example #1
0
function autoattend_update_session($courseid, $sessid, $ntime = '')
{
    global $DB;
    if ($sessid <= 0) {
        return null;
    }
    $sess = $DB->get_record('autoattend_sessions', array('id' => $sessid));
    if ($sess and $sess->state != 'C') {
        if (empty($ntime)) {
            $ntime = time();
        }
        //
        $sess = autoattend_update_session_state($courseid, $sess, $ntime);
        // 授業の状態を更新
        if ($sess) {
            if ($sess->method == 'A') {
                // 自動処理
                $logs = autoattend_get_courselogs($courseid, $sess->starttime, $sess->endtime);
                autoattend_update_auto_session($courseid, $sess, $logs, $ntime);
            }
            if ($sess->state == 'C') {
                // 授業で終了したものをクローズ
                autoattend_close_session($courseid, $sess, $ntime);
                // mail
                if (autoattend_is_email_enable($courseid)) {
                    autoattend_email2teachers_attend($sess);
                }
            } else {
                if ($sess->prv_state != 'O' and $sess->state == 'O' and $sess->method == 'S') {
                    if (autoattend_is_email_enable($courseid)) {
                        autoattend_email2teachers_key($sess);
                    }
                }
            }
            //
            autoattend_update_grades($courseid);
            return $sess;
        }
    }
    return null;
}
Example #2
0
}
require_login($course->id);
$context = jbxl_get_course_context($course->id);
$isstudent = jbxl_is_student($USER->id, $context);
// for Student
if ($isstudent) {
    $userid = $USER->id;
    $classinfo = autoattend_get_user_class($userid, $course->id);
    //
    if ($classinfo->classid >= 0) {
        $ntime = time();
        $sessions = autoattend_get_nowopen_sessions($course->id, $userid, 'S', $ntime);
        // get semiauto sessions
        if ($sessions) {
            foreach ($sessions as $session) {
                $session = autoattend_update_session_state($courseid, $session, $ntime, false);
                // not regist student
                if ($session->classid == 0 or $session->classid == $classinfo->classid) {
                    $student = $DB->get_record('autoattend_students', array('attsid' => $session->id, 'studentid' => $userid));
                    if (empty($student)) {
                        $student = autoattend_add_user_insession($session->id, $userid);
                    }
                    if ($student and $student->status == 'Y') {
                        redirect('semiautoattend.php?course=' . $course->id . '&amp;attsid=' . $session->id);
                    }
                }
            }
        }
    }
}
redirect('index.php?course=' . $course->id);