Esempio n. 1
0
function autoattend_update_sessions($courseid, $ntime = '')
{
    if (empty($ntime)) {
        $ntime = time();
    }
    $sesss = autoattend_get_unclosed_sessions($courseid, '', $ntime, true);
    // Open中を含む
    $sesss = autoattend_update_sessions_state($courseid, $sesss, $ntime);
    // 授業の状態を更新
    if ($sesss) {
        $getlog = false;
        $etime = 0;
        $stime = $ntime;
        foreach ($sesss as $sess) {
            if ($ntime > $sess->starttime and $sess->prv_state != 'C') {
                if ($stime > $sess->starttime) {
                    $stime = $sess->starttime;
                }
                if ($etime < $sess->endtime) {
                    $etime = $sess->endtime;
                }
                if ($sess->method == 'A') {
                    $getlog = true;
                }
            }
        }
        if ($getlog) {
            $logs = autoattend_get_courselogs($courseid, $stime, $etime);
        } else {
            $logs = '';
        }
        //
        foreach ($sesss as $sess) {
            if ($ntime > $sess->starttime and $sess->prv_state != 'C') {
                if ($sess->method == 'A') {
                    // 自動処理
                    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 true;
    }
    return false;
}
Esempio n. 2
0
} else {
    $title = $course->shortname . ': ' . get_string('autoattend', 'block_autoattend');
}
$PAGE->set_title($title);
$PAGE->set_heading($course->fullname);
$PAGE->set_cacheable(true);
$PAGE->set_button('&nbsp;');
//$PAGE->set_headingmenu();
echo $OUTPUT->header();
// Delete!!!
if (!empty($confirm)) {
    if (!empty($submit) && $submit == get_string('deleteok', 'block_autoattend')) {
        foreach ($deletes as $key => $value) {
            $DB->delete_records('autoattend_students', array('attsid' => $key));
            $DB->delete_records('autoattend_sessions', array('id' => $key));
            $sdate = $deletes[$key]->sessdate;
            $stime = $deletes[$key]->starttime - $sdate;
            //
            $str_sdate = strftime(get_string('strftimedmyw', 'block_autoattend'), $sdate + $TIME_OFFSET);
            $str_stime = strftime(get_string('strftimehourmin', 'block_autoattend'), $stime + $TIME_OFFSET);
            $loginfo = 'date=' . $str_sdate . ',time=' . $str_stime . ',method=' . $deletes[$key]->method;
            $event = autoattend_get_event($context, 'delete', '', $loginfo);
            jbxl_add_to_log($event);
        }
        autoattend_update_grades($course->id);
        redirect('index.php?course=' . $course->id . '&amp;class=' . $classid, get_string('sessiondeleted', 'block_autoattend'), 1);
    }
}
//// Table
include 'html/delete.html';
echo $OUTPUT->footer($course);