From 6c58e1985b7c754404224ce327a76c0d1358f030 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Tue, 30 Oct 2007 19:29:45 +0000 Subject: [PATCH] MDL-6376 - fix minor errors in the previous commit. More significantly, this patch changes the '1 Students have made 1 attempts' string. To start with, this code was being produced in five different places, so I made a function to do the work!. Next, as you can see, it is not gramatical. Also, some people find it confusing, as in MDL-6376. Therefore, it now just says 'Attempts: 1'. Merged from MOODLE_19_STABLE. --- lang/en_utf8/quiz.php | 1 + lib/questionlib.php | 3 +-- mod/quiz/edit.php | 6 +----- mod/quiz/index.php | 12 +----------- mod/quiz/lib.php | 27 +++++++++++++++++---------- mod/quiz/report/overview/report.php | 10 ++-------- mod/quiz/view.php | 7 ++----- 7 files changed, 25 insertions(+), 41 deletions(-) diff --git a/lang/en_utf8/quiz.php b/lang/en_utf8/quiz.php index 690ad9aaa5..c996ac785a 100644 --- a/lang/en_utf8/quiz.php +++ b/lang/en_utf8/quiz.php @@ -60,6 +60,7 @@ $string['attemptsallowed'] = 'Attempts allowed'; $string['attemptsdeleted'] = 'Quiz attempts deleted'; $string['attemptselection'] = 'Select which attempts to analyze per user:'; $string['attemptsexist'] = 'You can no longer add or remove questions.'; +$string['attemptsnum'] = 'Attempts: $a'; $string['attemptsonly'] = 'Show only students with attempts'; $string['attemptsunlimited'] = 'Unlimited attempts'; $string['back'] = 'Back to preview question'; diff --git a/lib/questionlib.php b/lib/questionlib.php index 20d649857f..60eb202922 100644 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -1891,8 +1891,7 @@ function default_export_filename($course,$category) { $export_name .= moodle_strtolower($export_categoryname)."-"; //The date format $export_name .= userdate(time(),$export_date_format,99,false); - //The extension - no extension, supplied by format - // $export_name .= ".txt"; + //Extension is supplied by format later. return $export_name; } diff --git a/mod/quiz/edit.php b/mod/quiz/edit.php index 03112733b3..04aacad65b 100644 --- a/mod/quiz/edit.php +++ b/mod/quiz/edit.php @@ -304,12 +304,8 @@ print_box_start(); - $a->attemptnum = count_records('quiz_attempts', 'quiz', $quiz->id, 'preview', 0); - $a->studentnum = count_records_select('quiz_attempts', "quiz = '$quiz->id' AND preview = '0'", 'COUNT(DISTINCT userid)'); - $a->studentstring = $course->students; - echo "
\n"; - echo "id\">".get_string('numattempts', 'quiz', $a)."
".get_string("attemptsexist","quiz"); + echo "id\">".quiz_num_attempt_summary($quiz)."
".get_string("attemptsexist","quiz"); echo "

\n"; $sumgrades = quiz_print_question_list($quiz, $thispageurl, false, $quiz_showbreaks, $quiz_reordertool); diff --git a/mod/quiz/index.php b/mod/quiz/index.php index 3de177a3d2..54d19c7360 100644 --- a/mod/quiz/index.php +++ b/mod/quiz/index.php @@ -112,17 +112,7 @@ } if ($showing == 'stats') { - - // Number of students who have attempted this quiz. - if ($a->attemptnum = count_records('quiz_attempts', 'quiz', $quiz->id, 'preview', 0)) { - $a->studentnum = count_records_select('quiz_attempts', - "quiz = '$quiz->id' AND preview = '0'", 'COUNT(DISTINCT userid)'); - $a->studentstring = $course->students; - $data[] = "id\">" . - get_string('numattempts', 'quiz', $a) . ''; - } else { - $data[] = ''; - } + $data[] = quiz_num_attempt_summary($quiz); } else if ($showing = 'scores') { // Grade and feedback. diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index abacd41dc0..a5dffeecfc 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -1023,7 +1023,7 @@ function quiz_print_overview($courses, &$htmlarray) { /// We want to list quizzes that are currently available, and which have a close date. /// This is the same as what the lesson does, and the dabate is in MDL-10568. - $now = date(); + $now = time(); foreach ($quizs as $quiz) { if ($quiz->timeclose >= $now && $quiz->timeopen < $now) { /// Give a link to the quiz, and the deadline. @@ -1037,15 +1037,7 @@ function quiz_print_overview($courses, &$htmlarray) { $context = get_context_instance(CONTEXT_MODULE, $quiz->coursemodule); if (has_capability('mod/quiz:viewreports', $context)) { /// For teacher-like people, show a summary of the number of student attempts. - $a = new stdClass; - if ($a->attemptnum = count_records('quiz_attempts', 'quiz', $quiz->id, 'preview', 0)) { - $a->studentnum = count_records_select('quiz_attempts', "quiz = '$quiz->id' AND preview = '0'", 'COUNT(DISTINCT userid)'); - } else { - $a->studentnum = 0; - $a->attemptnum = 0; - } - $a->studentstring = $course->students; - $str .= '
' . get_string('numattempts', 'quiz', $a) . '
'; + $str .= '
' . quiz_num_attempt_summary($quiz, true) . '
'; } else if (has_capability('mod/quiz:attempt', $context)){ // Student /// For student-like people, tell them how many attempts they have made. if (isset($USER->id) && ($attempts = quiz_get_user_attempts($quiz->id, $USER->id))) { @@ -1069,4 +1061,19 @@ function quiz_print_overview($courses, &$htmlarray) { } } } + +/** + * Return a textual summary of the number of attemtps that have been made at a particular quiz, + * returns '' if no attemtps have been made yet, unless $returnzero is passed as true. + * @param object $quiz the quiz object. Only $quiz->id is used at the moment. + * @param boolean $returnzero if false (default), when no attempts have been made '' is returned instead of 'Attempts: 0'. + * @return string a string like "Attempts: 123". + */ +function quiz_num_attempt_summary($quiz, $returnzero = false) { + $numattempts = count_records('quiz_attempts', 'quiz', $quiz->id, 'preview', 0); + if ($numattempts || $returnzero) { + return get_string('attemptsnum', 'quiz', $numattempts); + } + return ''; +} ?> diff --git a/mod/quiz/report/overview/report.php b/mod/quiz/report/overview/report.php index 13bfde6f77..cadfcf18e1 100644 --- a/mod/quiz/report/overview/report.php +++ b/mod/quiz/report/overview/report.php @@ -74,14 +74,8 @@ class quiz_report extends quiz_default_report { // Print information on the number of existing attempts if (!$download) { //do not print notices when downloading - if ($attemptnum = count_records('quiz_attempts', 'quiz', $quiz->id, 'preview', 0)) { - $a = new stdClass; - $a->attemptnum = $attemptnum; - $a->studentnum = count_records_select('quiz_attempts', - "quiz = '$quiz->id' AND preview = '0'", 'COUNT(DISTINCT userid)'); - $a->studentstring = $course->students; - - notify(get_string('numattempts', 'quiz', $a)); + if ($strattemptnum = quiz_num_attempt_summary($quiz)) { + notify($strattemptnum); } } diff --git a/mod/quiz/view.php b/mod/quiz/view.php index 906971a6a4..e77ad5552b 100644 --- a/mod/quiz/view.php +++ b/mod/quiz/view.php @@ -125,11 +125,8 @@ // Show number of attempts summary to those who can view reports. if (has_capability('mod/quiz:viewreports', $context)) { - if ($a->attemptnum = count_records('quiz_attempts', 'quiz', $quiz->id, 'preview', 0)) { - $a->studentnum = count_records_select('quiz_attempts', "quiz = '$quiz->id' AND preview = '0'", 'COUNT(DISTINCT userid)'); - $a->studentstring = $course->students; - - notify("id\">".get_string('numattempts', 'quiz', $a).''); + if ($strattemptnum = quiz_num_attempt_summary($quiz)) { + notify("id\">" . $strattemptnum . ''); } } -- 2.39.5