当前位置: 首页>>代码示例>>PHP>>正文


PHP material::i方法代码示例

本文整理汇总了PHP中material::i方法的典型用法代码示例。如果您正苦于以下问题:PHP material::i方法的具体用法?PHP material::i怎么用?PHP material::i使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在material的用法示例。


在下文中一共展示了material::i方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: events

 public function events()
 {
     if (!env('student')) {
         redirect('m=login');
     }
     $updisciplineId = val($_REQUEST, 'updisciplineId');
     $learningMode = val($_REQUEST, 'learningMode');
     if (empty($updisciplineId) || empty($learningMode)) {
         throw new Exception('Missed required param', 404);
     }
     $updiscipline = entry_sql('SELECT * FROM updiscipline WHERE updisciplineId=:updisciplineId', array(':updisciplineId' => $updisciplineId));
     if (empty($updiscipline)) {
         throw new Exception('Updiscipline not found', 404);
     }
     $groupPeriod = entry_sql('SELECT gp.* FROM group_history gh INNER JOIN group_period gp USING(groupPeriodId) WHERE gh.studentId=:studentId AND gp.sersemester=:sersemester', array('studentId' => studentId(), 'sersemester' => $updiscipline['sersemester']));
     if (empty($groupPeriod)) {
         throw new Exception('Cannot detect groupPeriod', 404);
     }
     $events = entries_sql('SELECT * FROM event WHERE updisciplineId=:updisciplineId AND groupPeriodId=:groupPeriodId AND learningMode=:learningMode', array('groupPeriodId' => $groupPeriod['groupPeriodId'], 'updisciplineId' => $updiscipline['updisciplineId'], 'learningMode' => $learningMode));
     array_walk($events, function (&$event, $k, $studentId) {
         $event['c'] = material::i($event['instanceType'])->c();
         $event['grade'] = material::i($event['instanceType'])->get_grade($event['instanceId'], $studentId);
     }, studentId());
     env('breadcrumbs', array(array(lng('up:disciplines'), '/?c=up'), array($updiscipline['disciplineName'], '/?c=up&m=events&updisciplineId=' . $updisciplineId . '&learningMode=' . $learningMode), lng('up:events')));
     tpl('up/events', array('updiscipline' => $updiscipline, 'events' => $events, 'result' => entry_sql('SELECT * FROM result WHERE studentId=:studentId AND updisciplineId=:updisciplineId AND learningMode=:learningMode', array('studentId' => studentId(), 'updisciplineId' => $updiscipline['updisciplineId'], 'learningMode' => $learningMode))));
 }
开发者ID:vealexeev,项目名称:quiz_engine_light,代码行数:26,代码来源:up.php

示例2: _up_breadcrumbs

 protected function _up_breadcrumbs($event)
 {
     $updiscipline = entry_sql('SELECT * FROM updiscipline WHERE updisciplineId=:updisciplineId', array(':updisciplineId' => $event['updisciplineId']));
     if (empty($updiscipline)) {
         throw new Exception('Cannot fetch updiscipline "' . $event['updisciplineId'] . '"', 500);
     }
     return array(array(lng('up:disciplines'), '/?c=up'), array($updiscipline['disciplineName'], '/?c=up&m=events&updisciplineId=' . $event['updisciplineId'] . '&learningMode=' . $event['learningMode']), lng('up:events'), array($event['name'], '/?c=' . material::i($event['instanceType'])->c() . '&eventId=' . $event['eventId'] . '&id=' . $event['instanceId']));
 }
开发者ID:vealexeev,项目名称:quiz_engine_light,代码行数:8,代码来源:controller.php

示例3: trigger_reg

<?php

trigger_reg('material.graded', function ($codeOrName, $id, $studentId) {
    global $CFG;
    $code = is_numeric($codeOrName) ? $codeOrName : array_search($codeOrName, $CFG->material);
    if (!is_numeric($code)) {
        throw new Exception('Cannot detect meterial type of "' . $codeOrName . '"', 500);
    }
    $updisciplines = entries_sql('SELECT ud.*,e.groupPeriodId,e.learningMode FROM event e, updiscipline ud, group_period gp, group_history gh
								WHERE e.updisciplineId=ud.updisciplineId AND ud.upId=gp.upId AND gp.groupPeriodId=gh.groupPeriodId AND e.instanceType=:type AND  e.instanceId=:id AND gh.studentId=:studentId', array('type' => $code, 'id' => $id, 'studentId' => $studentId));
    foreach ($updisciplines as $upd) {
        $events = entries_sql('SELECT * FROM event WHERE updisciplineId=:updisciplineId AND groupPeriodId=:groupPeriodId AND learningMode=:learningMode', array('groupPeriodId' => $upd['groupPeriodId'], 'updisciplineId' => $upd['updisciplineId'], 'learningMode' => $upd['learningMode']));
        $result = array_reduce($events, function ($r, $e) {
            $r['sum'] += $e['weight'];
            $r['got'] += $e['weight'] * val(material::i($e['instanceType'])->get_grade($e['instanceId'], $r['studentId']), 'coef', 0);
            return $r;
        }, array('studentId' => $studentId, 'sum' => 0, 'got' => 0));
        if (empty($result['sum'])) {
            continue;
        }
        entry_change('result', array('grade' => $result['got'] / $result['sum'] * 100), array('studentId' => $studentId, 'updisciplineId' => $upd['updisciplineId'], 'learningMode' => $upd['learningMode']));
    }
});
开发者ID:vealexeev,项目名称:quiz_engine_light,代码行数:23,代码来源:material.php

示例4: attempt

 public function attempt()
 {
     if (!env('student')) {
         redirect('m=login');
     }
     $quizId = val($_REQUEST, 'id', -1);
     $attemptId = val($_REQUEST, 'attemptId', -1);
     $page = val($_REQUEST, 'page', 1);
     $complete = val($_REQUEST, 'complete');
     $pro = val($_REQUEST, 'pro');
     if (!empty($pro)) {
         env('modepro', true);
     }
     $now = date('Y-m-d H:i:s');
     if (val(env('event'), 'instanceId') != $quizId) {
         throw new Exception('Cannot fetch event', 404);
     }
     $quiz = entry_sql('SELECT * FROM quiz WHERE quizId=:quizId', array('quizId' => $quizId));
     if (empty($quiz)) {
         throw new Exception('Cannot find quiz "' . $id . '"', 404);
     }
     if ($attemptId == 0) {
         // create new attempt
         $attemptId = material::i('quiz')->startAttempt($quiz);
         redirect('c=quiz&m=attempt&id=' . $quizId . '&attemptId=' . $attemptId);
     }
     $attempt = entry_sql('SELECT * FROM quiz_attempt WHERE quizAttemptId=:quizAttemptId AND quizId=:quizId AND studentId=:studentId', array('quizAttemptId' => $attemptId, 'quizId' => $quizId, 'studentId' => studentId()));
     if (empty($attempt)) {
         throw new Exception('Attempt "' . $attemptId . '" not found', 404);
     }
     if ($attempt['status'] != STATUS_INPROC) {
         throw new Exception('Attempt is not available anymore', 403);
     }
     if (!empty($quiz['timeLimit']) && date('Y-m-d H:i:s', strtotime($attempt['timeStart']) + $quiz['timeLimit']) < $now) {
         // if time expired
         material::i('quiz')->finishAttempt($attemptId);
         redirect('c=quiz&id=' . $quiz['quizId'] . '&eventId=' . val(env('event'), 'eventId'));
     }
     $questions = entries_sql('SELECT * FROM question_session WHERE quizAttemptId=:quizAttemptId ORDER BY num', array('quizAttemptId' => $attemptId));
     $perpage = 1;
     $numl = $page * $perpage;
     $numf = $numl - $perpage;
     $qresponses = val($_REQUEST, 'question', array());
     foreach ($questions as &$qsess) {
         $qobj = question::i($qsess['questionId']);
         $qresponse = val($qresponses, $qsess['questionId']);
         if (!empty($qresponse)) {
             $qgrade = $qobj->get_grade($qresponse);
             $qsess['grade'] = $qobj->get_grade($qresponse);
             $qsess['response'] = json_encode($qresponse);
             $qsess['status'] = STATUS_ANSWER;
             entry_change('question_session', $qsess, array('questionSessionId' => $qsess['questionSessionId']));
             entry_change('quiz_attempt', array('timeChange' => date('Y-m-d H:i:s')), array('quizAttemptId' => $attemptId));
         }
         if ($qsess['num'] > $numf && $qsess['num'] <= $numl) {
             // render only questions of the page
             $qsess['qhtml'] = $qobj->render(json_decode($qsess['response']));
         }
         $qsess['page'] = ceil($qsess['num'] / $perpage);
     }
     env('breadcrumbs', array_merge($this->_up_breadcrumbs(env('event')), array(lng('quiz:attempt'))));
     if (!empty($complete)) {
         material::i('quiz')->finishAttempt($attemptId);
         trigger_exe('material.graded', array('quiz', $quizId, studentId()));
         redirect('c=quiz&id=' . $quiz['quizId'] . '&eventId=' . val(env('event'), 'eventId'));
     }
     tpl('quiz/attempt', array('page' => $page, 'quiz' => $quiz, 'attempt' => $attempt, 'questions' => $questions));
 }
开发者ID:vealexeev,项目名称:quiz_engine_light,代码行数:68,代码来源:quiz.php


注:本文中的material::i方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。