Ejemplo n.º 1
0
 //
 $repeat = null;
 $xset = $iter->xset;
 if ($xset) {
     $is_last = $xset->xset_record_score($iter, $bolt_ex->score, $view->id, $avg_score, $repeat);
     if ($repeat) {
         $repeat->avg_score = $avg_score;
     }
     if ($is_last) {
         // if the exercise set if finished, make or update DB records
         //
         if ($xset->callback) {
             call_user_func($xset->callback, $avg_score);
         }
         $now = time();
         $id = BoltXsetResult::insert("(create_time, user_id, course_id, name, score, view_id) values ({$now}, {$user->id}, {$course->id}, '{$xset->name}', {$avg_score}, {$view_id})");
         $refresh_intervals = $xset->refresh;
         if ($refresh_intervals) {
             $refresh_rec = BoltRefreshRec::lookup("user_id={$user->id} and course_id={$course->id} and name='{$xset->name}'");
             if ($refresh_rec) {
                 $count = $refresh_rec->count;
                 $n = count($refresh_intervals->intervals);
                 if ($count >= $n) {
                     $count = $n - 1;
                 }
                 $due_time = time() + $refresh_intervals->intervals[$count] * 86400;
                 $refresh_rec->update("create_time={$now}, xset_result_id={$id}, due_time={$due_time}");
             } else {
                 $due_time = time() + $refresh_intervals->intervals[0] * 86400;
                 BoltRefreshRec::insert("(user_id, course_id, name, create_time, xset_result_id, due_time, count) values ({$user->id}, {$course->id}, '{$xset->name}', {$now}, {$id}, {$due_time}, 0)");
             }
Ejemplo n.º 2
0
function map_gen_uid($uid, $unit, $sb)
{
    global $course, $now;
    $class = get_class($unit);
    switch ($class) {
        case 'BoltExercise':
            return map_gen_ex($uid, $unit, $sb);
        case 'BoltLesson':
            return map_gen_lesson($uid, $unit, $sb);
        default:
            $ret = false;
            foreach ($unit->units as $u) {
                $ret = map_gen_uid($uid, $u, $sb);
                if (!$ret) {
                    break;
                }
            }
            if ($ret && $class == 'BoltExerciseSet') {
                $score = urand($sb->score_mean, $sb->score_dev);
                BoltXsetResult::insert("(create_time, user_id, course_id, name, score) values ({$now}, {$uid}, {$course->id}, '{$unit->name}', {$score})");
            }
            return $ret;
    }
}