コード例 #1
0
ファイル: view.php プロジェクト: numbas/moodle
$PAGE->set_title($title);
$PAGE->set_heading($course->fullname);
$output = $PAGE->get_renderer('mod_quiz');

/*
 * Create view object for use within renderers file
 */
$viewobj = new mod_quiz_view_object();
$viewobj->attempts = $attempts;
$viewobj->accessmanager = $accessmanager;
$viewobj->canreviewmine = $canreviewmine;

// Print table with existing attempts
if ($attempts) {
    // Work out which columns we need, taking account what data is available in each attempt.
    list($someoptions, $alloptions) = quiz_get_combined_reviewoptions($quiz, $attempts, $context);

    $viewobj->attemptcolumn = $quiz->attempts != 1;

    $viewobj->gradecolumn = $someoptions->marks >= question_display_options::MARK_AND_MAX &&
            quiz_has_grades($quiz);
    $viewobj->markcolumn = $viewobj->gradecolumn && ($quiz->grade != $quiz->sumgrades);
    $viewobj->overallstats = $lastfinishedattempt && $alloptions->marks >= question_display_options::MARK_AND_MAX;

    $viewobj->feedbackcolumn = quiz_has_feedback($quiz) && $alloptions->overallfeedback;
} else {
    $viewobj->attemptcolumn = 1;
}

$viewobj->timenow = $timenow;
$viewobj->numattempts = $numattempts;
コード例 #2
0
ファイル: external.php プロジェクト: IFPBMoodle/moodle
 /**
  * Combines the review options from a number of different quiz attempts.
  *
  * @param int $quizid quiz instance id
  * @param int $userid user id (empty for current user)
  * @return array of warnings and the review options
  * @since Moodle 3.1
  */
 public static function get_combined_review_options($quizid, $userid = 0)
 {
     global $DB, $USER;
     $warnings = array();
     $params = array('quizid' => $quizid, 'userid' => $userid);
     $params = self::validate_parameters(self::get_combined_review_options_parameters(), $params);
     list($quiz, $course, $cm, $context) = self::validate_quiz($params['quizid']);
     // Default value for userid.
     if (empty($params['userid'])) {
         $params['userid'] = $USER->id;
     }
     $user = core_user::get_user($params['userid'], '*', MUST_EXIST);
     core_user::require_active_user($user);
     // Extra checks so only users with permissions can view other users attempts.
     if ($USER->id != $user->id) {
         require_capability('mod/quiz:viewreports', $context);
     }
     $attempts = quiz_get_user_attempts($quiz->id, $user->id, 'all', true);
     $result = array();
     $result['someoptions'] = [];
     $result['alloptions'] = [];
     list($someoptions, $alloptions) = quiz_get_combined_reviewoptions($quiz, $attempts);
     foreach (array('someoptions', 'alloptions') as $typeofoption) {
         foreach (${$typeofoption} as $key => $value) {
             $result[$typeofoption][] = array("name" => $key, "value" => !empty($value) ? $value : 0);
         }
     }
     $result['warnings'] = $warnings;
     return $result;
 }