MDL-20636 Massively reduce the number of references to quiz in the question code.
authorTim Hunt <T.J.Hunt@open.ac.uk>
Wed, 23 Feb 2011 18:53:50 +0000 (18:53 +0000)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Wed, 23 Feb 2011 18:53:50 +0000 (18:53 +0000)
This mostly involves moving lang strings around, but I don't have time to do an AMOS script now.

57 files changed:
lang/en/question.php
mod/quiz/lang/en/quiz.php
question/category.php
question/category_class.php
question/category_form.php
question/edit.php
question/editlib.php
question/engine/datalib.php
question/engine/lib.php
question/engine/renderer.php
question/engine/simpletest/helpers.php
question/export.php
question/format.php
question/format/gift/format.php
question/format/gift/lang/en/qformat_gift.php
question/format/learnwise/format.php
question/format/qti_two/format.php
question/format/qti_two/qt_common.php
question/format/webct/format.php
question/format/webct/lang/en/qformat_webct.php
question/format/xhtml/format.php
question/format/xml/format.php
question/format/xml/lang/en/qformat_xml.php
question/import.php
question/import_form.php
question/move_form.php
question/qengine.js
question/question.php
question/type/calculated/datasetdefinitions_form.php
question/type/calculated/datasetitems_form.php
question/type/calculated/edit_calculated_form.php
question/type/calculated/lang/en/qtype_calculated.php
question/type/calculated/questiontype.php
question/type/calculatedmulti/edit_calculatedmulti_form.php
question/type/calculatedmulti/questiontype.php
question/type/calculatedsimple/edit_calculatedsimple_form.php
question/type/calculatedsimple/questiontype.php
question/type/ddwtos/script.js
question/type/description/lang/en/qtype_description.php
question/type/edit_question_form.php
question/type/match/edit_match_form.php
question/type/match/lang/en/qtype_match.php
question/type/match/questiontype.php
question/type/multianswer/edit_multianswer_form.php
question/type/multianswer/questiontype.php
question/type/multichoice/lang/en/qtype_multichoice.php
question/type/numerical/edit_numerical_form.php
question/type/numerical/lang/en/qtype_numerical.php
question/type/opaque/lang/en/qtype_opaque.php
question/type/opaque/simpletest/testlocallib.php
question/type/oumultiresponse/edit_oumultiresponse_form.php
question/type/questiontype.php
question/type/random/edit_random_form.php
question/type/random/lang/en/qtype_random.php
question/type/randomsamatch/edit_randomsamatch_form.php
question/type/shortanswer/questiontype.php
question/type/truefalse/questiontype.php

index 071c2fc..fbfb405 100644 (file)
@@ -137,6 +137,7 @@ $string['getcategoryfromfile'] = 'Get category from file';
 $string['getcontextfromfile'] = 'Get context from file';
 $string['changepublishstatuscat'] = '<a href="{$a->caturl}">Category "{$a->name}"</a> in course "{$a->coursename}" will have it\'s sharing status changed from <strong>{$a->changefrom} to {$a->changeto}</strong>.';
 $string['chooseqtypetoadd'] = 'Choose a question type to add';
+$string['editquestions'] = 'Edit questions';
 $string['ignorebroken'] = 'Ignore broken links';
 $string['impossiblechar'] = 'Impossible character {$a} detected as parenthesis character';
 $string['importcategory'] = 'Import category';
@@ -152,11 +153,13 @@ $string['invalidcategoryidforparent'] = 'Invalid category id for parent!';
 $string['invalidcategoryidtomove'] = 'Invalid category id to move!';
 $string['invalidconfirm'] = 'Confirmation string was incorrect';
 $string['invalidcontextinhasanyquestions'] = 'Invalid context passed to question_context_has_any_questions.';
+$string['invalidpenalty'] = 'Invalid penalty';
 $string['invalidwizardpage'] = 'Incorrect or no wizard page specified!';
 $string['lastmodifiedby'] = 'Last modified by';
 $string['linkedfiledoesntexist'] = 'Linked file {$a} doesn\'t exist';
 $string['makechildof'] = 'Make child of \'{$a}\'';
 $string['maketoplevelitem'] = 'Move to top level';
+$string['matcherror'] = 'Grades do not match grade options - question skipped';
 $string['matchgrades'] = 'Match grades';
 $string['matchgradeserror'] = 'Error if grade not listed';
 $string['matchgradesnearest'] = 'Nearest grade if not listed';
@@ -186,6 +189,7 @@ $string['nocate'] = 'No such category {$a}!';
 $string['nopermissionadd'] = 'You don\'t have permission to add questions here.';
 $string['nopermissionmove'] = 'You don\'t have permission to move questions from here. You must save the question in this category or save it as a new question.';
 $string['noprobs'] = 'No problems found in your question database.';
+$string['notenoughanswers'] = 'This type of question requires at least {$a} answers';
 $string['notenoughdatatoeditaquestion'] = 'Neither a question id, nor a category id and question type, was specified.';
 $string['notenoughdatatomovequestions'] = 'You need to provide the question ids of questions you want to move.';
 $string['notflagged'] = 'Not flagged';
@@ -211,12 +215,14 @@ $string['questioncategory'] = 'Question category';
 $string['questioncatsfor'] = 'Question categories for \'{$a}\'';
 $string['questiondoesnotexist'] = 'This question does not exist';
 $string['questionname'] = 'Question name';
+$string['questionno'] = 'Question {$a}';
 $string['questionsaveerror'] = 'Errors occur during saving question - ({$a})';
 $string['questionsmovedto'] = 'Questions still in use moved to "{$a}" in the parent course category.';
 $string['questionsrescuedfrom'] = 'Questions saved from context {$a}.';
 $string['questionsrescuedfrominfo'] = 'These questions (some of which may be hidden) were saved when context {$a} was deleted because they are still used by some quizzes or other activities.';
 $string['questiontype'] = 'Question type';
 $string['questionuse'] = 'Use question in this activity';
+$string['reviewresponse'] = 'Review response';
 $string['saveflags'] = 'Save the state of the flags';
 $string['selectacategory'] = 'Select a category:';
 $string['selectaqtypefordescription'] = 'Select a question type to see its description.';
index 420fca6..f964d47 100644 (file)
@@ -24,7 +24,6 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-$string['acceptederror'] = 'Accepted error';
 $string['accessnoticesheader'] = 'You can preview this quiz, but if this were a real attempt, you would be blocked because:';
 $string['action'] = 'Action';
 $string['adaptive'] = 'Adaptive mode';
@@ -108,7 +107,6 @@ $string['bestgrade'] = 'Best grade';
 $string['blackboard'] = 'Blackboard';
 $string['blackboard_six'] = 'Blackboard V6+';
 $string['bothattempts'] = 'Show students with and without attempts';
-$string['braceerror'] = 'Could not find {...} around answers';
 $string['browsersecurity'] = 'Browser security';
 $string['browsersecurity_help'] = 'If "Full screen pop-up with some JavaScript security" is selected,
 
@@ -217,13 +215,11 @@ $string['datasetdefinitions'] = 'Reusable dataset definitions for category {$a}'
 $string['datasetnumber'] = 'Number';
 $string['daysavailable'] = 'Days available';
 $string['decimaldigits'] = 'Decimal digits in grades';
-$string['decimalformat'] = 'decimals';
 $string['decimalplaces'] = 'Decimal places in grades';
 $string['decimalplaces_help'] = 'This setting specifies the number of digits shown after the decimal point when displaying grades or grades. It only effects the display of grades, not the grades stored in the database, nor the internal calculations, which are carried out to full accuracy.';
 $string['decimalplacesquestion'] = 'Decimal places in question grades';
 $string['decimalplacesquestion_help'] = 'This setting specifies the number of digits shown after the decimal point when displaying the grades for individual questions.';
 $string['decimalpoints'] = 'Decimal points';
-$string['decimals'] = 'with {$a}';
 $string['default'] = 'Default';
 $string['defaultgrade'] = 'Default question grade';
 $string['defaultinfo'] = 'The default category for questions.';
@@ -290,7 +286,6 @@ $string['erroraccessingreport'] = 'You cannot access this report';
 $string['errorinquestion'] = 'Error in question';
 $string['errormissingquestion'] = 'Error: The system is missing the question with id {$a}';
 $string['errornotnumbers'] = 'Error - answers must be numeric';
-$string['errorsdetected'] = '{$a} error(s) detected';
 $string['errorunexpectedevent'] = 'Unexpected event code {$a->event} found for question {$a->questionid} in attempt {$a->attemptid}.';
 $string['essay'] = 'Essay';
 $string['essayquestions'] = 'Questions';
@@ -328,23 +323,8 @@ $string['formulaerror'] = 'Formula errors!';
 $string['fractionsaddwrong'] = 'The positive grades you have chosen do not add up to 100%<br />Instead, they add up to {$a}%<br />Do you want to go back and fix this question?';
 $string['fractionsnomax'] = 'One of the answers should be 100%, so that it is<br />possible to get a full grade for this question.<br />Do you want to go back and fix this question?';
 $string['fromfile'] = 'from file:';
-$string['functiondisabledbysecuremode'] = 'That functionality is currently disabled';
-$string['functiontakesatleasttwo'] = 'The function {$a} must have at least two arguments';
-$string['functiontakesnoargs'] = 'The function {$a} does not take any arguments';
-$string['functiontakesonearg'] = 'The function {$a} must have exactly one argument';
-$string['functiontakesoneortwoargs'] = 'The function {$a} must have either one or two arguments';
-$string['functiontakestwoargs'] = 'The function {$a} must have exactly two arguments';
 $string['generalfeedback'] = 'General feedback';
 $string['generalfeedback_help'] = 'General feedback is text which is shown after a question has been attempted. Unlike feedback for a specific question which depends on the response given, the same general feedback is always shown.';
-$string['generatevalue'] = 'Generate a new value between';
-$string['geometric'] = 'Geometric';
-$string['gift'] = 'GIFT format';
-$string['giftleftbraceerror'] = 'Could not find a {';
-$string['giftmatchingformat'] = 'Matching question answers are improperly formatted';
-$string['giftnonumericalanswers'] = 'No answers found for numerical question';
-$string['giftnovalidquestion'] = 'No valid question found';
-$string['giftqtypenotset'] = 'Question type is not set';
-$string['giftrightbraceerror'] = 'Could not find a }';
 $string['grade'] = 'Grade';
 $string['gradeall'] = 'Grade all';
 $string['gradeaverage'] = 'Average grade';
@@ -371,7 +351,6 @@ $string['guestsno'] = 'Sorry, guests cannot see or attempt quizzes';
 $string['hidebreaks'] = 'Hide page breaks';
 $string['hidereordertool'] = 'Hide the reordering tool';
 $string['history'] = 'History of responses:';
-$string['illegalformulasyntax'] = 'Illegal formula syntax starting with \'{$a}\'';
 $string['imagedisplay'] = 'Image to display';
 $string['import'] = 'Import';
 $string['import_help'] = 'This function allows you to import questions from external text files.
@@ -389,7 +368,6 @@ $string['importfromthisfile'] = 'Import from this file';
 $string['importingquestions'] = 'Importing {$a} questions from file';
 $string['importmaxerror'] = 'There is an error in the question. There are too many answers.';
 $string['importmax10error'] = 'There is an error in the question. You may not have more than ten answers';
-$string['importminerror'] = 'There is an error in the question. There are not enough answers for this question type';
 $string['importparseerror'] = 'Error(s) found parsing the import file. No questions have been imported. To import any good questions try again setting \'Stop on error\' to \'No\'';
 $string['importquestions'] = 'Import questions from file';
 $string['inactiveoverridehelp'] = '* Student does not have the correct group or role to attempt the quiz';
@@ -420,7 +398,6 @@ $string['link'] = 'Link';
 $string['listitems'] = 'Listing of items in quiz';
 $string['literal'] = 'Literal';
 $string['loadingquestionsfailed'] = 'Loading questions failed: {$a}';
-$string['loguniform'] = 'digits, from a loguniform distribution';
 $string['makecopy'] = 'Save as new question';
 $string['managetypes'] = 'Manage question types and servers';
 $string['manualgrading'] = 'Grading';
@@ -430,22 +407,13 @@ $string['marks'] = 'Marks';
 $string['match'] = 'Matching';
 $string['matchanswer'] = 'Matching answer';
 $string['matchanswerno'] = 'Matching answer {$a}';
-$string['matcherror'] = 'Grades do not match grade options - question skipped';
-$string['matchgrades'] = 'Match grades';
-$string['matchgradeserror'] = 'Error if grade not listed';
-$string['matchgradesnearest'] = 'Nearest grade if not listed';
 $string['messageprovider:confirmation'] = 'Confirmation of your own quiz submissions';
 $string['messageprovider:submission'] = 'Notification of quiz submissions';
 $string['max'] = 'Max';
 $string['min'] = 'Min';
 $string['minutes'] = 'Minutes';
-$string['missinganswer'] = 'Too few :ANSWER, :Lx, :Rx statements for question line {$a}. You must define at last 2 possible answers';
 $string['missingcorrectanswer'] = 'Correct answer must be specified';
-$string['missingformula'] = 'Missing formula';
 $string['missingitemtypename'] = 'Missing name';
-$string['missingname'] = 'Missing question name';
-$string['missingquestion'] = 'Missing question label after line {$a}';
-$string['missingquestiontext'] = 'Missing question text';
 $string['missingword'] = 'Missing word format';
 $string['modulename'] = 'Quiz';
 $string['modulename_help'] = 'The quiz module enables the teacher to design and set quizzes consisting of multiple choice, true-false, matching and other question types. Each attempt is automatically marked, and the teacher can choose whether to give feedback and/or show correct answers.';
@@ -475,8 +443,6 @@ $string['nodataset'] = 'nothing - it is not a wild card';
 $string['nodatasubmitted'] = 'No data was submitted.';
 $string['noessayquestionsfound'] = 'No manually graded questions found';
 $string['nogradewarning'] = 'This quiz is not graded, so you cannot set overall feedback that differs by grade.';
-$string['nomatchinganswer'] = 'You must specify an answer matching the question \'{$a}\'.';
-$string['nominal'] = 'Nominal';
 $string['nomoreattempts'] = 'No more attempts are allowed';
 $string['none'] = 'None';
 $string['noopen'] = 'No open date';
@@ -498,7 +464,6 @@ $string['noreviewuntilshort'] = 'Available {$a}';
 $string['noscript'] = 'JavaScript must be enabled to continue!';
 $string['notavailable'] = 'This quiz is not currently available';
 $string['notavailabletostudents'] = 'Note: This quiz is not currently available to your students';
-$string['notenoughanswers'] = 'This type of question requires at least {$a} answers';
 $string['notenoughrandomquestions'] = 'There are not enough questions in category {$a->category} to create the question {$a->name} ({$a->id}).';
 $string['notenoughsubquestions'] = 'Not enough sub-questions have been defined!<br />Do you want to go back and fix this question?';
 $string['notimedependentitems'] = 'Time dependent items are not currently supported by the quiz module. As a work around, set a time limit for the whole quiz. Do you wish to choose a different item (or use the current item regardless)?';
@@ -576,8 +541,6 @@ $string['questiondeleted'] = 'This question has been deleted. Please contact you
 $string['questioninuse'] = 'The question \'{$a->questionname}\' is currently being used in: <br />{$a->quiznames}<br />The question will not be deleted from these quizzes but only from the category list.';
 $string['questionmissing'] = 'Question for this session is missing';
 $string['questionname'] = 'Question name';
-$string['questionnametoolong'] = 'Question name too long at line {$a} (255 char. max). It has been truncated.';
-$string['questionno'] = 'Question {$a}';
 $string['questionnonav'] = '<span class="accesshide">Question </span>{$a->number}<span class="accesshide"> {$a->attributes}</span>';
 $string['questionnonavinfo'] = '<span class="accesshide">Information </span>{$a->number}<span class="accesshide"> {$a->attributes}</span>';
 $string['questionnotloaded'] = 'Question {$a} has not been loaded from the database';
@@ -647,7 +610,6 @@ $string['regradedisplayexplanation'] = 'Attempts that change during regrading ar
 $string['regradenotallowed'] = 'You do not have permission to regrade this quiz';
 $string['regradingquestion'] = 'Regrading "{$a}".';
 $string['regradingquiz'] = 'Regrading quiz "{$a}"';
-$string['relative'] = 'Relative';
 $string['remove'] = 'Remove';
 $string['removeallquizattempts'] = 'Delete all quiz attempts';
 $string['removeemptypage'] = 'Remove empty page';
@@ -762,8 +724,6 @@ $string['shufflequestions'] = 'Shuffle questions';
 $string['shufflequestionsselected'] = 'Shuffle questions has been set, so some actions relating to pages are not available. To change the shuffle option, {$a}.';
 $string['shufflewithin'] = 'Shuffle within questions';
 $string['shufflewithin_help'] = 'If enabled, the parts making up each question will be randomly shuffled each time a student attempts the quiz, provided the option is also enabled in the question settings. This setting only applies to questions that have multiple parts, such as multiple choice or matching questions.';
-$string['significantfigures'] = 'with {$a}';
-$string['significantfiguresformat'] = 'significant figures';
 $string['singleanswer'] = 'Choose one answer.';
 $string['sortage'] = 'Sort by age';
 $string['sortalpha'] = 'Sort by name';
@@ -800,21 +760,17 @@ $string['timesup'] = 'Time is up!';
 $string['timetaken'] = 'Time taken';
 $string['tofile'] = 'to file';
 $string['tolerance'] = 'Tolerance';
-$string['tolerancetype'] = 'Tolerance type';
 $string['toomanyrandom'] = 'The number of random questions required is more than are still available in the category!';
 $string['top'] = 'Top';
 $string['totalpointsx'] = 'Total of grades: {$a}';
 $string['totalquestionsinrandomqcategory'] = 'Total of {$a} questions in category.';
 $string['true'] = 'True';
 $string['truefalse'] = 'True/false';
-$string['truefalseimporterror'] = '<b>Warning</b>: The true/false question \'{$a->questiontext}\' could not be imported properly. It was not clear whether the correct answer is true or false. The question has been imported assuming that the answer is \'{$a->answer}\'. If this is not correct, you will need to edit the question.';
 $string['type'] = 'Type';
 $string['unfinished'] = 'open';
 $string['ungraded'] = 'Ungraded';
-$string['uniform'] = 'decimals, from a uniform distribution';
 $string['unit'] = 'Unit';
 $string['unknowntype'] = 'Question type not supported at line {$a}. The question will be ignored';
-$string['unsupportedformulafunction'] = 'The function {$a} is not supported';
 $string['unusedcategorydeleted'] = 'This category has been deleted because, after deleting the course, its questions weren\'t used any more.';
 $string['updatesettings'] = 'Update quiz settings';
 $string['updatingatttemptgrades'] = 'Updating attempt grades.';
@@ -829,22 +785,14 @@ $string['validate'] = 'Validate';
 $string['viewallanswers'] = 'View {$a} quiz attempts';
 $string['viewallreports'] = 'View reports for {$a} attempts';
 $string['warningmissingtype'] = '<b>This question is of a type that has not been installed on your Moodle yet.<br />Please alert your Moodle administrator.</b>';
-$string['warningsdetected'] = '{$a} warning(s) detected';
-$string['webct'] = 'WebCT format';
 $string['wheregrade'] = 'Where\'s my grade?';
 $string['wildcard'] = 'Wild card';
 $string['windowclosing'] = 'This window will close shortly.';
 $string['withselected'] = 'With selected';
 $string['withsummary'] = 'with summary statistics';
-$string['wronggrade'] = 'Wrong grade (after line {$a}) :';
 $string['wronguse'] = 'You can not use this page like that';
-$string['xhtml'] = 'XHTML format';
-$string['xml'] = 'Moodle XML format';
-$string['xmlimportnoname'] = 'Missing question name in XML file';
-$string['xmlimportnoquestion'] = 'Missing question text in XML file';
-$string['xmltypeunsupported'] = 'Question type {$a} is not supported by XML import';
+$string['xhtml'] = 'XHTML';
 $string['youcannotwait'] = 'This quiz closes before you will be allowed to start another attempt.';
 $string['youmustwait'] = 'You must wait before you may re-attempt this quiz. You will be allowed to start another attempt after {$a}.';
 $string['youneedtoenrol'] = 'You need to enrol in this course before you can attempt this quiz';
 $string['yourfinalgradeis'] = 'Your final grade for this quiz is {$a}.';
-$string['zerosignificantfiguresnotallowed'] = 'The correct answer cannot have zero significant figures!';
index 03154dc..2c6e0e1 100644 (file)
@@ -60,7 +60,7 @@ $PAGE->set_pagelayout('standard');
 $qcobject = new question_category_object($pagevars['cpage'], $thispageurl, $contexts->having_one_edit_tab_cap('categories'), $param->edit, $pagevars['cat'], $param->delete,
                             $contexts->having_cap('moodle/question:add'));
 
-$streditingcategories = get_string('editcategories', 'quiz');
+$streditingcategories = get_string('editcategories', 'question');
 if ($param->left || $param->right || $param->moveup || $param->movedown|| $param->moveupcontext || $param->movedowncontext){
     require_sesskey();
     foreach ($qcobject->editlists as $list){
index 35d0796..e9de26b 100644 (file)
@@ -98,7 +98,7 @@ class question_category_list_item extends list_item {
         $str = $extraargs['str'];
         $category = $this->item;
 
-        $editqestions = get_string('editquestions', 'quiz');
+        $editqestions = get_string('editquestions', 'question');
 
         /// Each section adds html to be displayed as part of this list item
         $questionbankurl = new moodle_url("/question/edit.php", ($this->parentlist->pageurl->params() + array('category'=>"$category->id,$category->contextid")));
@@ -157,25 +157,24 @@ class question_category_object {
         $this->tab = str_repeat('&nbsp;', $this->tabsize);
 
         $this->str->course         = get_string('course');
-        $this->str->category       = get_string('category', 'quiz');
-        $this->str->categoryinfo   = get_string('categoryinfo', 'quiz');
-        $this->str->questions      = get_string('questions', 'quiz');
+        $this->str->category       = get_string('category', 'question');
+        $this->str->categoryinfo   = get_string('categoryinfo', 'question');
+        $this->str->questions      = get_string('questions', 'question');
         $this->str->add            = get_string('add');
         $this->str->delete         = get_string('delete');
         $this->str->moveup         = get_string('moveup');
         $this->str->movedown       = get_string('movedown');
         $this->str->edit           = get_string('editthiscategory', 'question');
         $this->str->hide           = get_string('hide');
-        $this->str->publish        = get_string('publish', 'quiz');
         $this->str->order          = get_string('order');
-        $this->str->parent         = get_string('parent', 'quiz');
+        $this->str->parent         = get_string('parent', 'question');
         $this->str->add            = get_string('add');
         $this->str->action         = get_string('action');
-        $this->str->top            = get_string('top', 'quiz');
-        $this->str->addcategory    = get_string('addcategory', 'quiz');
-        $this->str->editcategory   = get_string('editcategory', 'quiz');
+        $this->str->top            = get_string('top');
+        $this->str->addcategory    = get_string('addcategory', 'question');
+        $this->str->editcategory   = get_string('editcategory', 'question');
         $this->str->cancel         = get_string('cancel');
-        $this->str->editcategories = get_string('editcategories', 'quiz');
+        $this->str->editcategories = get_string('editcategories', 'question');
         $this->str->page           = get_string('page');
 
         $this->pageurl = $pageurl;
@@ -354,7 +353,7 @@ class question_category_object {
         $vars = new stdClass();
         $vars->name = $category->name;
         $vars->count = $questionsincategory;
-        echo $OUTPUT->box(get_string('categorymove', 'quiz', $vars), 'generalbox boxaligncenter');
+        echo $OUTPUT->box(get_string('categorymove', 'question', $vars), 'generalbox boxaligncenter');
         $this->moveform->display();
     }
 
@@ -371,7 +370,7 @@ class question_category_object {
     public function add_category($newparent, $newcategory, $newinfo, $return = false) {
         global $DB;
         if (empty($newcategory)) {
-            print_error('categorynamecantbeblank', 'quiz');
+            print_error('categorynamecantbeblank', 'question');
         }
         list($parentid, $contextid) = explode(',', $newparent);
         //moodle_form makes sure select element output is legal no need for further cleaning
@@ -404,7 +403,7 @@ class question_category_object {
     public function update_category($updateid, $newparent, $newname, $newinfo) {
         global $CFG, $DB;
         if (empty($newname)) {
-            print_error('categorynamecantbeblank', 'quiz');
+            print_error('categorynamecantbeblank', 'question');
         }
 
         // Get the record we are updating.
index c1bedac..4fd71ee 100644 (file)
@@ -45,7 +45,7 @@ class question_category_edit_form extends moodleform {
         $contexts   = $this->_customdata['contexts'];
         $currentcat   = $this->_customdata['currentcat'];
 //--------------------------------------------------------------------------------
-        $mform->addElement('header', 'categoryheader', get_string('addcategory', 'quiz'));
+        $mform->addElement('header', 'categoryheader', get_string('addcategory', 'question'));
 
         $questioncategoryel = $mform->addElement('questioncategory', 'parent', get_string('parentcategory', 'question'),
                     array('contexts'=>$contexts, 'top'=>true, 'currentcat'=>$currentcat, 'nochildrenof'=>$currentcat));
@@ -57,14 +57,14 @@ class question_category_edit_form extends moodleform {
 
         $mform->addElement('text','name', get_string('name'),'maxlength="254" size="50"');
         $mform->setDefault('name', '');
-        $mform->addRule('name', get_string('categorynamecantbeblank', 'quiz'), 'required', null, 'client');
+        $mform->addRule('name', get_string('categorynamecantbeblank', 'question'), 'required', null, 'client');
         $mform->setType('name', PARAM_MULTILANG);
 
-        $mform->addElement('textarea', 'info', get_string('categoryinfo', 'quiz'), array('rows'=> '10', 'cols'=>'45'));
+        $mform->addElement('textarea', 'info', get_string('categoryinfo', 'question'), array('rows'=> '10', 'cols'=>'45'));
         $mform->setDefault('info', '');
         $mform->setType('info', PARAM_MULTILANG);
 //--------------------------------------------------------------------------------
-        $this->add_action_buttons(false, get_string('addcategory', 'quiz'));
+        $this->add_action_buttons(false, get_string('addcategory', 'question'));
 //--------------------------------------------------------------------------------
         $mform->addElement('hidden', 'id', 0);
         $mform->setType('id', PARAM_INT);
index ecb3438..34fc61f 100644 (file)
@@ -61,7 +61,7 @@ $questionbank->process_actions();
 // TODO log this page view.
 
 $context = $contexts->lowest();
-$streditingquestions = get_string('editquestions', "quiz");
+$streditingquestions = get_string('editquestions', 'question');
 $PAGE->set_title($streditingquestions);
 $PAGE->set_heading($COURSE->fullname);
 echo $OUTPUT->header();
index ba34c4c..b11aced 100644 (file)
@@ -389,7 +389,7 @@ class question_bank_checkbox_column extends question_bank_column_base {
     protected $firstrow = true;
 
     public function init() {
-        $this->strselect = get_string('select', 'quiz');
+        $this->strselect = get_string('select');
     }
 
     public function get_name() {
@@ -1193,7 +1193,7 @@ class question_bank_view {
 
     protected function print_choose_category_message($categoryandcontext) {
         echo "<p style=\"text-align:center;\"><b>";
-        print_string("selectcategoryabove", "quiz");
+        print_string("selectcategoryabove", "question");
         echo "</b></p>";
     }
 
@@ -1245,9 +1245,9 @@ class question_bank_view {
         echo '<form method="get" action="edit.php" id="displayoptions">';
         echo "<fieldset class='invisiblefieldset'>";
         echo html_writer::input_hidden_params($this->baseurl, array('recurse', 'showhidden', 'showquestiontext'));
-        $this->display_category_form_checkbox('recurse', get_string('recurse', 'quiz'));
-        $this->display_category_form_checkbox('showhidden', get_string('showhidden', 'quiz'));
-        $this->display_category_form_checkbox('qbshowtext', get_string('showquestiontext', 'quiz'));
+        $this->display_category_form_checkbox('recurse', get_string('includesubcategories', 'question'));
+        $this->display_category_form_checkbox('showhidden', get_string('showhidden', 'question'));
+        $this->display_category_form_checkbox('qbshowtext', get_string('showquestiontext', 'question'));
         echo '<noscript><div class="centerpara"><input type="submit" value="'. get_string('go') .'" />';
         echo '</div></noscript></fieldset></form>';
     }
@@ -1301,9 +1301,9 @@ class question_bank_view {
         $cmoptions = new stdClass();
         $cmoptions->hasattempts = !empty($this->quizhasattempts);
 
-        $strselectall = get_string("selectall", "quiz");
-        $strselectnone = get_string("selectnone", "quiz");
-        $strdelete = get_string("delete");
+        $strselectall = get_string('selectall');
+        $strselectnone = get_string('selectnone');
+        $strdelete = get_string('delete');
 
         list($categoryid, $contextid) = explode(',', $categoryandcontext);
         $catcontext = get_context_instance_by_id($contextid);
@@ -1362,7 +1362,7 @@ class question_bank_view {
 
         echo '<div class="modulespecificbuttonscontainer">';
         if ($caneditall || $canmoveall || $canuseall){
-            echo '<strong>&nbsp;'.get_string('withselected', 'quiz').':</strong><br />';
+            echo '<strong>&nbsp;'.get_string('withselected', 'question').':</strong><br />';
 
             if (function_exists('module_specific_buttons')) {
                 echo module_specific_buttons($this->cm->id,$cmoptions);
@@ -1374,7 +1374,7 @@ class question_bank_view {
             }
 
             if ($canmoveall && count($addcontexts)) {
-                echo '<input type="submit" name="move" value="'.get_string('moveto', 'quiz')."\" />\n";
+                echo '<input type="submit" name="move" value="'.get_string('moveto')."\" />\n";
                 question_category_select_menu($addcontexts, false, 0, "$category->id,$category->contextid");
             }
 
@@ -1538,12 +1538,12 @@ class question_bank_view {
 
             // Add an explanation about questions in use
             if ($inuse) {
-                $questionnames .= '<br />'.get_string('questionsinuse', 'quiz');
+                $questionnames .= '<br />'.get_string('questionsinuse', 'question');
             }
             $baseurl = new moodle_url('edit.php', $this->baseurl->params());
             $deleteurl = new moodle_url($baseurl, array('deleteselected'=>$questionlist, 'confirm'=>md5($questionlist), 'sesskey'=>sesskey()));
 
-            echo $OUTPUT->confirm(get_string("deletequestionscheck", "quiz", $questionnames), $deleteurl, $baseurl);
+            echo $OUTPUT->confirm(get_string('deletequestionscheck', 'question', $questionnames), $deleteurl, $baseurl);
 
             return true;
         }
@@ -1660,7 +1660,7 @@ function question_edit_setup($edittab, $baseurl, $requirecmid = false, $requirec
         $catparts = explode(',', $pagevars['cat']);
         if (!$catparts[0] || (FALSE !== array_search($catparts[1], $contextlistarr)) ||
                 !$DB->count_records_select("question_categories", "id = ? AND contextid = ?", array($catparts[0], $catparts[1]))) {
-            print_error('invalidcategory', 'quiz');
+            print_error('invalidcategory', 'question');
         }
     } else {
         $category = $defaultcategory;
index df733ea..c20370a 100644 (file)
@@ -16,7 +16,7 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Code for loading and saving quiz attempts to and from the database.
+ * Code for loading and saving question attempts to and from the database.
  *
  * @package    moodlecore
  * @subpackage questionengine
@@ -311,9 +311,9 @@ WHERE
     }
 
     /**
-     * Load summary information about the state of each question in a group of attempts.
-     * This is used by the quiz manual grading report, to show how many attempts
-     * at each question need to be graded.
+     * Load summary information about the state of each question in a group of
+     * attempts. This is used, for example, by the quiz manual grading report,
+     * to show how many attempts at each question need to be graded.
      *
      * @param qubaid_condition $qubaids used to restrict which usages are included
      * in the query. See {@link qubaid_condition}.
index 93716ac..4b6cf64 100644 (file)
@@ -586,7 +586,7 @@ abstract class question_flags {
 /**
  * Exception thrown when the system detects that a student has done something
  * out-of-order to a question. This can happen, for example, if they click
- * the back button in a quiz, then try to submit a different response.
+ * the browser's back button in a quiz, then try to submit a different response.
  *
  * @copyright  2010 The Open University
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
index dacabd3..c076d50 100644 (file)
@@ -336,7 +336,7 @@ class core_question_renderer extends plugin_renderer_base {
                 $url = new moodle_url($options->questionreviewlink, array('slot' => $qa->get_slot(), 'step' => $i));
                 $stepno = $this->output->action_link($url, $stepno,
                         new popup_action('click', $url, 'reviewquestion', array('width' => 450, 'height' => 650)),
-                        array('title' => get_string('reviewresponse', 'quiz')));
+                        array('title' => get_string('reviewresponse', 'question')));
             }
             $user = new stdClass();
             $user->id = $step->get_user_id();
index 985e4fc..bc89995 100644 (file)
@@ -278,7 +278,7 @@ class test_question_maker {
         self::initialise_a_question($description);
         $description->name = 'Description question';
         $description->questiontext = 'This text tells you a bit about the next few questions in this quiz.';
-        $description->generalfeedback = 'This is what this seciton of the quiz should have taught you.';
+        $description->generalfeedback = 'This is what this section of the quiz should have taught you.';
         $description->qtype = question_bank::get_qtype('description');
 
         return $description;
index fa97d13..b4f9863 100644 (file)
@@ -43,9 +43,7 @@ if (empty($categoryid)) {
 }
 
 list($catid, $catcontext) = explode(',', $pagevars['cat']);
-if (!$category = $DB->get_record("question_categories", array("id" => $catid, 'contextid' => $catcontext))) {
-    print_error('nocategory','quiz');
-}
+$category = $DB->get_record('question_categories', array("id" => $catid, 'contextid' => $catcontext), '*', MUST_EXIST);
 
 /// Header
 $PAGE->set_url($thispageurl->out());
index 53d4036..a45b2e3 100644 (file)
@@ -205,7 +205,7 @@ class qformat_default {
      * Handle parsing error
      */
     function error($message, $text='', $questionname='') {
-        $importerrorquestion = get_string('importerrorquestion','quiz');
+        $importerrorquestion = get_string('importerrorquestion', 'question');
 
         echo "<div class=\"importerror\">\n";
         echo "<strong>$importerrorquestion $questionname</strong>";
@@ -282,25 +282,25 @@ class qformat_default {
         set_time_limit(0);
 
         // STAGE 1: Parse the file
-        echo $OUTPUT->notification(get_string('parsingquestions','quiz'), 'notifysuccess');
+        echo $OUTPUT->notification(get_string('parsingquestions', 'question'), 'notifysuccess');
 
         if (! $lines = $this->readdata($this->filename)) {
-            echo $OUTPUT->notification(get_string('cannotread','quiz'));
+            echo $OUTPUT->notification(get_string('cannotread', 'question'));
             return false;
         }
 
         if (!$questions = $this->readquestions($lines, $context)) {   // Extract all the questions
-            echo $OUTPUT->notification(get_string('noquestionsinfile','quiz'));
+            echo $OUTPUT->notification(get_string('noquestionsinfile', 'question'));
             return false;
         }
 
         // STAGE 2: Write data to database
-        echo $OUTPUT->notification(get_string('importingquestions', 'quiz',
+        echo $OUTPUT->notification(get_string('importingquestions', 'question',
                 $this->count_questions($questions)), 'notifysuccess');
 
         // check for errors before we continue
         if ($this->stoponerror and ($this->importerrors>0)) {
-            echo $OUTPUT->notification(get_string('importparseerror','quiz'));
+            echo $OUTPUT->notification(get_string('importparseerror', 'question'));
             return true;
         }
 
@@ -326,7 +326,7 @@ class qformat_default {
                     }
                 }
                 if (!$answersvalid) {
-                    echo $OUTPUT->notification(get_string('matcherror', 'quiz'));
+                    echo $OUTPUT->notification(get_string('invalidgrade', 'question'));
                     ++$gradeerrors;
                     continue;
                 }
@@ -598,7 +598,7 @@ class qformat_default {
      */
     function readquestion($lines) {
 
-        $formatnotimplemented = get_string('formatnotimplemented','quiz');
+        $formatnotimplemented = get_string('formatnotimplemented', 'question');
         echo "<p>$formatnotimplemented</p>";
 
         return NULL;
@@ -737,7 +737,7 @@ class qformat_default {
 
         // did we actually process anything
         if ($count==0) {
-            print_error('noquestions', 'quiz', $continuepath);
+            print_error('noquestions', 'question', $continuepath);
         }
 
         // final pre-process on exported data
@@ -837,7 +837,7 @@ class qformat_default {
      */
     function writequestion($question) {
         // if not overidden, then this is an error.
-        $formatnotimplemented = get_string('formatnotimplemented','quiz');
+        $formatnotimplemented = get_string('formatnotimplemented', 'question');
         echo "<p>$formatnotimplemented</p>";
         return NULL;
     }
@@ -847,10 +847,11 @@ class qformat_default {
      * @return string file path
      */
     function question_get_export_dir() {
+        // TODO is this still used.
         global $USER;
         if ($this->canaccessbackupdata) {
-            $dirname = get_string("exportfilename","quiz");
-            $path = $this->course->id.'/backupdata/'.$dirname; // backupdata is protected directory
+            $dirname = get_string('exportfilename', 'question');
+            $path = $this->course->id . '/backupdata/' . $dirname; // backupdata is protected directory
         } else {
             $path = 'temp/questionexport/' . $USER->id;
         }
index 0304730..8e96191 100644 (file)
@@ -134,8 +134,7 @@ class qformat_gift extends qformat_default {
     function check_answer_count($min, $answers, $text) {
         $countanswers = count($answers);
         if ($countanswers < $min) {
-            $importminerror = get_string('importminerror', 'quiz');
-            $this->error($importminerror, $text);
+            $this->error(get_string('importminerror', 'qformat_gift'), $text);
             return false;
         }
 
@@ -227,7 +226,7 @@ class qformat_gift extends qformat_default {
             $answertext = '';
             $answerlength = 0;
         } else if (!(($answerstart !== false) and ($answerfinish !== false))) {
-            $this->error(get_string('braceerror', 'quiz'), $text);
+            $this->error(get_string('braceerror', 'qformat_gift'), $text);
             return false;
         } else {
             $answerlength = $answerfinish - $answerstart;
@@ -307,7 +306,7 @@ class qformat_gift extends qformat_default {
         }
 
         if (!isset($question->qtype)) {
-            $giftqtypenotset = get_string('giftqtypenotset', 'quiz');
+            $giftqtypenotset = get_string('giftqtypenotset', 'qformat_gift');
             $this->error($giftqtypenotset, $text);
             return false;
         }
@@ -398,7 +397,7 @@ class qformat_gift extends qformat_default {
                 foreach ($answers as $key => $answer) {
                     $answer = trim($answer);
                     if (strpos($answer, "->") === false) {
-                        $giftmatchingformat = get_string('giftmatchingformat','quiz');
+                        $giftmatchingformat = get_string('giftmatchingformat','qformat_gift');
                         $this->error($giftmatchingformat, $answer);
                         return false;
                         break 2;
@@ -490,7 +489,7 @@ class qformat_gift extends qformat_default {
 
                 if (count($answers) == 0) {
                     // invalid question
-                    $giftnonumericalanswers = get_string('giftnonumericalanswers','quiz');
+                    $giftnonumericalanswers = get_string('giftnonumericalanswers','qformat_gift');
                     $this->error($giftnonumericalanswers, $text);
                     return false;
                     break;
@@ -552,7 +551,7 @@ class qformat_gift extends qformat_default {
                 break;
 
                 default:
-                    $this->error(get_string('giftnovalidquestion', 'quiz'), $text);
+                    $this->error(get_string('giftnovalidquestion', 'qformat_gift'), $text);
                 return fale;
                 break;
 
index 605c28d..bc1c1a0 100644 (file)
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-$string['nohandler'] = 'No handler for question type {$a}';
-$string['gift'] = 'GIFT format';
-$string['gift_help'] = 'GIFT format enables multiple-choice, true-false, short answer, matching, missing word, numerical and essay questions to be imported or exported via text file.';
+$string['braceerror'] = 'Could not find {...} around answers';
+$string['gift'] = 'Gift format';
+$string['gift_help'] = 'Gift format enables multiple-choice, true-false, short answer, matching, missing word, numerical and essay questions to be imported or exported via text file.';
 $string['gift_link'] = 'qformat/gift';
+$string['gift'] = 'GIFT format';
+$string['giftleftbraceerror'] = 'Could not find a {';
+$string['giftmatchingformat'] = 'Matching question answers are improperly formatted';
+$string['giftnonumericalanswers'] = 'No answers found for numerical question';
+$string['giftnovalidquestion'] = 'No valid question found';
+$string['giftqtypenotset'] = 'Question type is not set';
+$string['giftrightbraceerror'] = 'Could not find a }';
+$string['importminerror'] = 'There is an error in the question. There are not enough answers for this question type';
+$string['nohandler'] = 'No handler for question type {$a}';
+$string['pluginname'] = 'Gift format';
index d4d81e2..4e70053 100644 (file)
@@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
  *
  * Alton College, Hampshire, UK - Tom Flannaghan, Andrew Walker
  *
- * Imports learnwise multiple choice quizzes (single and multiple answers)
+ * Imports learnwise multiple choice questions (single and multiple answers)
  * currently ignores the deduct attribute for multiple answer questions
  * deductions are currently simply found by dividing the award for the incorrect
  * answer by the total number of options
index 881e5e6..1e6238a 100644 (file)
@@ -136,7 +136,7 @@ class qformat_qti_two extends qformat_default {
     function importpreprocess() {
         global $CFG;
 
-        print_error('cannotimportformat', 'question', "$CFG->wwwroot/mod/quiz/import.php?category=$category->id");
+        print_error('cannotimportformat', 'question');
     }
 
     function exportpreprocess() {
@@ -266,7 +266,7 @@ function handle_questions_media(&$questions, $path, $courseid) {
 
         // create a directory for the exports (if not already existing)
         if (!$export_dir = make_upload_directory($this->question_get_export_dir().'/'.$this->filename)) {
-              print_error('cannotcreatepath', 'quiz', '', $export_dir);
+              print_error('cannotcreatepath', 'question', '', $export_dir);
         }
         $path = $CFG->dataroot.'/'.$this->question_get_export_dir().'/'.$this->filename;
 
@@ -561,9 +561,9 @@ function xml_entitize(&$collection) {
         case TRUEFALSE:
             $qanswers = $question->options->answers;
             $answers[0] = (array)$qanswers['true'];
-            $answers[0]['answer'] = get_string("true", "quiz");
+            $answers[0]['answer'] = get_string('true', 'qtype_truefalse');
             $answers[1] = (array)$qanswers['false'];
-            $answers[1]['answer'] = get_string("false", "quiz");
+            $answers[1]['answer'] = get_string('false', 'qtype_truefalse');
 
             if (!empty($shuffleanswers)) {
                 $answers = $this->shuffle_things($answers);
index b3753c9..a2d60cb 100644 (file)
@@ -36,7 +36,6 @@ defined('MOODLE_INTERNAL') || die();
  * @calledfrom type/<typename>/editquestion.php
  */
 function get_course_media_files($courseid) {
-// this code lifted from mod/quiz/question.php and modified
 throw new coding_exception('qti_two not converted to new fil api yet, sorry');
     /*global $CFG;
     $images = null;
@@ -146,7 +145,7 @@ function get_media_tag($file, $courseid = 0, $alt = 'media file', $width = 0, $h
         return "<img src=\"$media\" alt=\"$alt\" width=\"$width\" height=\"$height\" />";
     }
     else {
-        require_once("$CFG->dirroot/mod/quiz/format/qti/custommediafilter.php");
+        require_once("$CFG->dirroot/question/format/qti/custommediafilter.php");
         return custom_mediaplugin_filter('<a href="' . $media . '"></a>', $courseid, $width, $height);
     }
 }
index 5bec434..2897f96 100644 (file)
@@ -266,7 +266,7 @@ class qformat_webct extends qformat_default {
                     }
                     if (strlen($question->name) > 255) {
                         $question->name = substr($question->name,0,250)."...";
-                        $warnings[] = get_string("questionnametoolong", "quiz", $nQuestionStartLine);
+                        $warnings[] = get_string("questionnametoolong", "qformat_webct", $nQuestionStartLine);
                     }
                     if (!isset($question->defaultmark)) {
                         $question->defaultmark = 1;
@@ -278,11 +278,11 @@ class qformat_webct extends qformat_default {
                     // Perform sanity checks
                     $QuestionOK = TRUE;
                     if (strlen($question->questiontext) == 0) {
-                        $warnings[] = get_string("missingquestion", "quiz", $nQuestionStartLine);
+                        $warnings[] = get_string("missingquestion", "qformat_webct", $nQuestionStartLine);
                         $QuestionOK = FALSE;
                     }
                     if (sizeof($question->answer) < 1) {  // a question must have at least 1 answer
-                       $errors[] = get_string("missinganswer", "quiz", $nQuestionStartLine);
+                       $errors[] = get_string("missinganswer", "qformat_webct", $nQuestionStartLine);
                        $QuestionOK = FALSE;
                     }
                     else {
@@ -320,7 +320,7 @@ class qformat_webct extends qformat_default {
                             case SHORTANSWER:
                                 if ($maxfraction != 1) {
                                     $maxfraction = $maxfraction * 100;
-                                    $errors[] = "'$question->name': ".get_string("wronggrade", "quiz", $nLineCounter).' '.get_string("fractionsnomax", "quiz", $maxfraction);
+                                    $errors[] = "'$question->name': ".get_string("wronggrade", "qformat_webct", $nLineCounter).' '.get_string("fractionsnomax", "question", $maxfraction);
                                     $QuestionOK = FALSE;
                                 }
                                 break;
@@ -329,14 +329,14 @@ class qformat_webct extends qformat_default {
                                 if ($question->single) {
                                     if ($maxfraction != 1) {
                                         $maxfraction = $maxfraction * 100;
-                                        $errors[] = "'$question->name': ".get_string("wronggrade", "quiz", $nLineCounter).' '.get_string("fractionsnomax", "quiz", $maxfraction);
+                                        $errors[] = "'$question->name': ".get_string("wronggrade", "qformat_webct", $nLineCounter).' '.get_string("fractionsnomax", "question", $maxfraction);
                                         $QuestionOK = FALSE;
                                     }
                                 } else {
                                     $totalfraction = round($totalfraction,2);
                                     if ($totalfraction != 1) {
                                         $totalfraction = $totalfraction * 100;
-                                        $errors[] = "'$question->name': ".get_string("wronggrade", "quiz", $nLineCounter).' '.get_string("fractionsaddwrong", "quiz", $totalfraction);
+                                        $errors[] = "'$question->name': ".get_string("wronggrade", "qformat_webct", $nLineCounter).' '.get_string("fractionsaddwrong", "question", $totalfraction);
                                         $QuestionOK = FALSE;
                                     }
                                 }
@@ -422,10 +422,6 @@ class qformat_webct extends qformat_default {
 
             if (preg_match("~^:TYPE:C~i",$line)) {
                 // Calculated Question
-           /*     $warnings[] = get_string("calculatedquestion", "quiz", $nLineCounter);
-                unset($question);
-                $ignore_rest_of_question = TRUE;         // Question Type not handled by Moodle
-             */
                 $question = $this->defaultquestion();
                 $question->qtype = CALCULATED;
                 $question->answers = array(); // No problem as they go as :FORMULA: from webct
@@ -453,7 +449,7 @@ class qformat_webct extends qformat_default {
 
             if (preg_match("~^:TYPE:P~i",$line)) {
                 // Paragraph Question
-                $warnings[] = get_string("paragraphquestion", "quiz", $nLineCounter);
+                $warnings[] = get_string("paragraphquestion", "qformat_webct", $nLineCounter);
                 unset($question);
                 $ignore_rest_of_question = TRUE;         // Question Type not handled by Moodle
                 continue;
@@ -461,7 +457,7 @@ class qformat_webct extends qformat_default {
 
             if (preg_match("~^:TYPE:~i",$line)) {
                 // Unknow Question
-                $warnings[] = get_string("unknowntype", "quiz", $nLineCounter);
+                $warnings[] = get_string("unknowntype", "qformat_webct", $nLineCounter);
                 unset($question);
                 $ignore_rest_of_question = TRUE;         // Question Type not handled by Moodle
                 continue;
@@ -475,7 +471,7 @@ class qformat_webct extends qformat_default {
                 $name = trim($webct_options[1]);
                 if (strlen($name) > 255) {
                     $name = substr($name,0,250)."...";
-                    $warnings[] = get_string("questionnametoolong", "quiz", $nLineCounter);
+                    $warnings[] = get_string("questionnametoolong", "qformat_webct", $nLineCounter);
                 }
                 $question->name = $name;
                 continue;
@@ -656,7 +652,7 @@ class qformat_webct extends qformat_default {
         }
 
         if (sizeof($errors) > 0) {
-            echo "<p>".get_string("errorsdetected", "quiz", sizeof($errors))."</p><ul>";
+            echo "<p>".get_string("errorsdetected", "qformat_webct", sizeof($errors))."</p><ul>";
             foreach($errors as $error) {
                 echo "<li>$error</li>";
             }
@@ -665,7 +661,7 @@ class qformat_webct extends qformat_default {
         }
 
         if (sizeof($warnings) > 0) {
-            echo "<p>".get_string("warningsdetected", "quiz", sizeof($warnings))."</p><ul>";
+            echo "<p>".get_string("warningsdetected", "qformat_webct", sizeof($warnings))."</p><ul>";
             foreach($warnings as $warning) {
                 echo "<li>$warning</li>";
             }
index a93c850..3542958 100644 (file)
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
+$string['errorsdetected'] = '{$a} error(s) detected';
+$string['missinganswer'] = 'Too few :ANSWER, :Lx, :Rx statements for question line {$a}. You must define at last 2 possible answers';
+$string['missingquestion'] = 'Missing question label after line {$a}';
+$string['paragraphquestion'] = 'Paragraph question';
+$string['pluginname'] = 'WebCT format';
+$string['questionnametoolong'] = 'Question name too long at line {$a} (255 char. max). It has been truncated.';
+$string['unknowntype'] = 'Unknown type';
+$string['warningsdetected'] = '{$a} warning(s) detected';
 $string['webct'] = 'WebCT format';
 $string['webct_help'] = 'WebCT format enables multiple-choice and short answer questions saved in WebCT\'s text-based format to be imported.';
 $string['webct_link'] = 'qformat/webct';
+$string['wronggrade'] = 'Wrong grade (after line {$a}) :';
index 44a30cd..34da540 100644 (file)
@@ -76,8 +76,8 @@ function writequestion($question) {
     // selection depends on question type
     switch($question->qtype) {
     case TRUEFALSE:
-        $st_true = get_string( 'true','quiz' );
-        $st_false = get_string( 'false','quiz' );
+        $st_true = get_string('true', 'qtype_truefalse');
+        $st_false = get_string('false', 'qtype_truefalse');
         $expout .= "<ul class=\"truefalse\">\n";
         $expout .= "  <li><input name=\"quest_$id\" type=\"radio\" value=\"$st_true\" />$st_true</li>\n";
         $expout .= "  <li><input name=\"quest_$id\" type=\"radio\" value=\"$st_false\" />$st_false</li>\n";
index c94a8cb..4e5af07 100644 (file)
@@ -152,8 +152,8 @@ class qformat_xml extends qformat_default {
         global $CFG;
 
         // get some error strings
-        $error_noname = get_string('xmlimportnoname','quiz');
-        $error_noquestion = get_string('xmlimportnoquestion','quiz');
+        $error_noname = get_string('xmlimportnoname','qformat_xml');
+        $error_noquestion = get_string('xmlimportnoquestion','qformat_xml');
 
         // this routine initialises the question object
         $qo = $this->defaultquestion();
@@ -161,7 +161,7 @@ class qformat_xml extends qformat_default {
         // Question name
         $qo->name = $this->getpath($question,
                 array('#', 'name', 0, '#', 'text', 0, '#'), '', true,
-                get_string('xmlimportnoname', 'quiz'));
+                get_string('xmlimportnoname', 'qformat_xml'));
         $qo->questiontext = $this->getpath($question,
                 array('#', 'questiontext', 0, '#', 'text', 0, '#'), '', true);
         $qo->questiontextformat = $this->trans_format($this->getpath(
@@ -514,8 +514,8 @@ class qformat_xml extends qformat_default {
         if ($warning) {
             $a = new stdClass();
             $a->questiontext = $qo->questiontext;
-            $a->answer = get_string($qo->correctanswer ? 'true' : 'false', 'quiz');
-            echo $OUTPUT->notification(get_string('truefalseimporterror', 'quiz', $a));
+            $a->answer = get_string($qo->correctanswer ? 'true' : 'false', 'qtype_truefalse');
+            echo $OUTPUT->notification(get_string('truefalseimporterror', 'qformat_xml', $a));
         }
 
         $this->import_hints($qo, $question);
@@ -954,7 +954,7 @@ class qformat_xml extends qformat_default {
                 // to handle it.
                 if (!$qo = $this->try_importing_using_qtypes(
                         $question, null, null, $questiontype)) {
-                    $this->error(get_string('xmltypeunsupported', 'quiz', $questiontype));
+                    $this->error(get_string('xmltypeunsupported', 'qformat_xml', $questiontype));
                     $qo = null;
                 }
             }
index bbdf381..87856fe 100644 (file)
  */
 
 $string['invalidxml'] = 'Invalid XML file - string expected (use CDATA?)';
+$string['pluginname'] = 'Moodle XML format';
+$string['truefalseimporterror'] = '<b>Warning</b>: The true/false question \'{$a->questiontext}\' could not be imported properly. It was not clear whether the correct answer is true or false. The question has been imported assuming that the answer is \'{$a->answer}\'. If this is not correct, you will need to edit the question.';
 $string['unsupportedexport'] = 'Question type {$a} is not supported by XML export';
 $string['xml'] = 'Moodle XML format';
-$string['xml_help'] = 'This is a Moodle-specific format for importing and exporting questions for use in quiz activities.';
+$string['xml_help'] = 'This is a Moodle-specific format for importing and exporting questions.';
 $string['xml_link'] = 'qformat/xml';
+$string['xmlimportnoname'] = 'Missing question name in XML file';
+$string['xmlimportnoquestion'] = 'Missing question text in XML file';
+$string['xmltypeunsupported'] = 'Question type {$a} is not supported by XML import';
index 68e5dcc..357932d 100644 (file)
@@ -35,12 +35,12 @@ list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
 
 // get display strings
 $txt = new stdClass();
-$txt->importerror = get_string('importerror','quiz');
+$txt->importerror = get_string('importerror', 'question');
 $txt->importquestions = get_string('importquestions', 'question');
 
 list($catid, $catcontext) = explode(',', $pagevars['cat']);
-if (!$category = $DB->get_record("question_categories", array("id" => $catid))) {
-    print_error('nocategory','quiz');
+if (!$category = $DB->get_record("question_categories", array('id' => $catid))) {
+    print_error('nocategory', 'question');
 }
 
 $PAGE->set_pagelayout('standard');
@@ -94,7 +94,7 @@ if ($form = $import_form->get_data()) {
 
     $formatfile = 'format/' . $form->format . '/format.php';
     if (!is_readable($formatfile)) {
-        throw new moodle_exception('formatnotfound', 'quiz', '', $form->format);
+        throw new moodle_exception('formatnotfound', 'question', '', $form->format);
     }
 
     require_once($formatfile);
index da1f231..ae1615a 100644 (file)
@@ -121,7 +121,7 @@ class question_import_form extends moodleform {
 
         $formatfile = 'format/' . $data['format'] . '/format.php';
         if (!is_readable($formatfile)) {
-            throw new moodle_exception('formatnotfound', 'quiz', '', $data['format']);
+            throw new moodle_exception('formatnotfound', 'question', '', $data['format']);
         }
 
         require_once($formatfile);
index 9101ca1..07df4fe 100644 (file)
@@ -43,9 +43,9 @@ class question_move_form extends moodleform {
         $currentcat = $this->_customdata['currentcat'];
         $contexts = $this->_customdata['contexts'];
 
-        $mform->addElement('questioncategory', 'category', get_string('category','quiz'), compact('contexts', 'currentcat'));
+        $mform->addElement('questioncategory', 'category', get_string('category', 'question'), compact('contexts', 'currentcat'));
 
-        $this->add_action_buttons(true, get_string('categorymoveto', 'quiz'));
+        $this->add_action_buttons(true, get_string('categorymoveto', 'question'));
 
         $mform->addElement('hidden', 'delete', $currentcat);
         $mform->setType('delete', PARAM_INT);
index d8cc3f6..0e448f8 100644 (file)
@@ -165,7 +165,7 @@ M.core_question_engine.init_form = function(Y, form) {
 }
 
 /**
- * Event handler to stop the quiz form being submitted more than once.
+ * Event handler to stop a question form being submitted more than once.
  * @param e the form submit event.
  * @param form the form element.
  */
index 03d4afc..ecd22a2 100644 (file)
@@ -322,8 +322,8 @@ if ($mform->is_cancelled()) {
         echo $OUTPUT->header();
 
     } else {
-        $strediting = '<a href="edit.php?courseid='.$COURSE->id.'">'.get_string("editquestions", "quiz").'</a> -> '.$streditingquestion;
-        $PAGE->navbar->add(get_string('editquestions', 'quiz'), $returnurl);
+        $strediting = '<a href="edit.php?courseid='.$COURSE->id.'">'.get_string('editquestions', 'question').'</a> -> '.$streditingquestion;
+        $PAGE->navbar->add(get_string('editquestions', 'question'), $returnurl);
         $PAGE->navbar->add($streditingquestion);
         echo $OUTPUT->header();
     }
index b2c64ac..69e1a39 100644 (file)
@@ -95,7 +95,7 @@ class question_dataset_dependent_definitions_form extends moodleform {
                 list($options, $selected) =
                         $this->qtypeobj->dataset_options($this->question, $datasetname);
                 unset($options['0']); // Mandatory...
-                $label = get_string("wildcard", "quiz"). " <strong>$datasetname</strong> ";
+                $label = get_string("wildcard", "qtype_calculated"). " <strong>$datasetname</strong> ";
                 $mform->addElement('select', "dataset[$key]", $label, $options);
              if (isset($datadefscat[$datasetname])){
                   $mform->addElement('static', "there is a category", get_string('sharedwildcard', 'qtype_calculated',$datasetname ), get_string('dataitemdefined','qtype_calculated', $datadefscat[$datasetname]));
@@ -112,7 +112,7 @@ class question_dataset_dependent_definitions_form extends moodleform {
             if (!isset($datasetmenus[$datasetname])) {
                 list($options, $selected) =
                         $this->qtypeobj->dataset_options($this->question, $datasetname,false);
-                $label = get_string("wildcard", "quiz"). " <strong>$datasetname</strong> ";
+                $label = get_string("wildcard", "qtype_calculated"). " <strong>$datasetname</strong> ";
                 $mform->addElement('select', "dataset[$key]", $label, $options);
                  //       $mform->addRule("dataset[$key]", null, 'required', null, 'client');
              if (isset($datadefscat[$datasetname])){
index 439d8fb..4acbd45 100644 (file)
@@ -172,13 +172,13 @@ class question_dataset_dependent_items_form extends moodleform {
                 $mform->addElement('static', 'answercomment['.($this->noofitems+$key1).']', $answer->answer);
                 $mform->addElement('text', 'tolerance['.$key.']', get_string('tolerance', 'qtype_calculated'));
                 $mform->setAdvanced('tolerance['.$key.']',true);
-                $mform->addElement('select', 'tolerancetype['.$key.']', get_string('tolerancetype', 'quiz'), $this->qtypeobj->tolerance_types());
+                $mform->addElement('select', 'tolerancetype['.$key.']', get_string('tolerancetype', 'qtype_numerical'), $this->qtypeobj->tolerance_types());
                 $mform->setAdvanced('tolerancetype['.$key.']',true);
 
                 $mform->addElement('select', 'correctanswerlength['.$key.']', get_string('correctanswershows', 'qtype_calculated'), range(0, 9));
                 $mform->setAdvanced('correctanswerlength['.$key.']',true);
 
-                $answerlengthformats = array('1' => get_string('decimalformat', 'quiz'), '2' => get_string('significantfiguresformat', 'quiz'));
+                $answerlengthformats = array('1' => get_string('decimalformat', 'qtype_numerical'), '2' => get_string('significantfiguresformat', 'quiz'));
                 $mform->addElement('select', 'correctanswerformat['.$key.']', get_string('correctanswershowsformat', 'qtype_calculated'), $answerlengthformats);
                 $mform->setAdvanced('correctanswerformat['.$key.']',true);
                 $mform->addElement('static', 'dividertolerance', '', '<hr />');
@@ -300,8 +300,8 @@ class question_dataset_dependent_items_form extends moodleform {
 //------------------------------------------------------------------------------------------------------------------------------
         //non standard name for button element needed so not using add_action_buttons
         if ( !($this->noofitems==0) ){
-        $mform->addElement('submit', 'backtoquiz', get_string('savechanges'));
-        $mform->closeHeaderBefore('backtoquiz');
+        $mform->addElement('submit', 'savechanges', get_string('savechanges'));
+        $mform->closeHeaderBefore('savechanges');
         }
         //hidden elements
         $mform->addElement('hidden', 'id');
@@ -444,12 +444,11 @@ class question_dataset_dependent_items_form extends moodleform {
 
     function validation($data, $files) {
         $errors = array();
-        if (isset($data['backtoquiz']) && ($this->noofitems==0) ){
+        if (isset($data['savechanges']) && ($this->noofitems==0) ){
             $errors['warning'] = get_string('warning', 'mnet');
         }
         if ($this->outsidelimit){
-         //   if(!isset($errors['warning'])) $errors['warning']=' ';
-           $errors['outsidelimits'] = get_string('oneanswertrueansweroutsidelimits','qtype_calculated');
+            $errors['outsidelimits'] = get_string('oneanswertrueansweroutsidelimits','qtype_calculated');
         }
         $numbers = $data['number'];
         foreach ($numbers as $key => $number){
index c6a4c96..848275f 100644 (file)
@@ -75,9 +75,9 @@ class question_edit_calculated_form extends question_edit_form {
         // $repeated = parent::get_per_answer_fields($mform, $label, $gradeoptions, $repeatedoptions, $answersoption);
         $repeated = array();
         $repeated[] =& $mform->createElement('header', 'answerhdr', $label);
-        $repeated[] =& $mform->createElement('text', 'answer', get_string('answer', 'quiz'), array('size' => 50));
+        $repeated[] =& $mform->createElement('text', 'answer', get_string('answer', 'question'), array('size' => 50));
         $repeated[] =& $mform->createElement('select', 'fraction', get_string('grade'), $gradeoptions);
-        $repeated[] =& $mform->createElement('editor', 'feedback', get_string('feedback', 'quiz'), null, $this->editoroptions);
+        $repeated[] =& $mform->createElement('editor', 'feedback', get_string('feedback', 'question'), null, $this->editoroptions);
         $repeatedoptions['answer']['type'] = PARAM_RAW;
         $repeatedoptions['fraction']['default'] = 0;
         $answersoption = 'answers';
@@ -86,17 +86,17 @@ class question_edit_calculated_form extends question_edit_form {
 
         $addrepeated = array();
         $addrepeated[] =& $mform->createElement('text', 'tolerance', get_string('tolerance', 'qtype_calculated'));
-        $addrepeated[] =& $mform->createElement('select', 'tolerancetype', get_string('tolerancetype', 'quiz'), $this->qtypeobj->tolerance_types());
+        $addrepeated[] =& $mform->createElement('select', 'tolerancetype', get_string('tolerancetype', 'qtype_numerical'), $this->qtypeobj->tolerance_types());
         $repeatedoptions['tolerance']['type'] = PARAM_NUMBER;
         $repeatedoptions['tolerance']['default'] = 0.01;
 
         $addrepeated[] =&  $mform->createElement('select', 'correctanswerlength', get_string('correctanswershows', 'qtype_calculated'), range(0, 9));
         $repeatedoptions['correctanswerlength']['default'] = 2;
 
-        $answerlengthformats = array('1' => get_string('decimalformat', 'quiz'), '2' => get_string('significantfiguresformat', 'quiz'));
+        $answerlengthformats = array('1' => get_string('decimalformat', 'qtype_numerical'), '2' => get_string('significantfiguresformat', 'quiz'));
         $addrepeated[] =&  $mform->createElement('select', 'correctanswerformat', get_string('correctanswershowsformat', 'qtype_calculated'), $answerlengthformats);
         array_splice($repeated, 3, 0, $addrepeated);
-        $repeated[1]->setLabel(get_string('correctanswerformula', 'quiz').'=');
+        $repeated[1]->setLabel(get_string('correctanswerformula', 'qtype_calculated').'=');
 
         return $repeated;
     }
@@ -279,7 +279,7 @@ class question_edit_calculated_form extends question_edit_form {
             if ($trimmedanswer!=''){
                 if ('2' == $data['correctanswerformat'][$key]
                     && '0' == $data['correctanswerlength'][$key]) {
-                        $errors['correctanswerlength['.$key.']'] = get_string('zerosignificantfiguresnotallowed','quiz');
+                        $errors['correctanswerlength['.$key.']'] = get_string('zerosignificantfiguresnotallowed', 'qtype_calculated');
                     }
                 if (!is_numeric($data['tolerance'][$key])){
                     $errors['tolerance['.$key.']'] = get_string('mustbenumeric', 'qtype_calculated');
index 2c80fcc..79ace60 100644 (file)
@@ -49,6 +49,7 @@ $string['correctanswershowsformat'] = 'Format';
 $string['correctfeedback'] = 'For any correct response';
 $string['dataitemdefined']='with {$a} numerical values already defined is available';
 $string['datasetrole']= ' The wild cards <strong>{x..}</strong> will be substituted by a numerical value from their dataset';
+$string['decimals'] = 'with {$a}';
 $string['deleteitem'] = 'Delete item';
 $string['deletelastitem'] = 'Delete last item';
 $string['editingcalculated'] = 'Editing a Calculated question';
@@ -61,8 +62,16 @@ $string['existingcategory3'] = 'a link from an already existing set of links tha
 $string['forceregeneration'] = 'force regeneration';
 $string['forceregenerationall'] = 'forceregeneration of all wildcards';
 $string['forceregenerationshared'] = 'forceregeneration of only non-shared wildcards';
+$string['functiondisabledbysecuremode'] = 'That functionality is currently disabled';
+$string['functiontakesatleasttwo'] = 'The function {$a} must have at least two arguments';
+$string['functiontakesnoargs'] = 'The function {$a} does not take any arguments';
+$string['functiontakesonearg'] = 'The function {$a} must have exactly one argument';
+$string['functiontakesoneortwoargs'] = 'The function {$a} must have either one or two arguments';
+$string['functiontakestwoargs'] = 'The function {$a} must have exactly two arguments';
+$string['generatevalue'] = 'Generate a new value between';
 $string['getnextnow'] = 'Get new \'Item to Add\' now';
 $string['hexanotallowed'] = 'Dataset <strong>{$a->name}</strong> hexadecimal format value $a->value is not allowed' ;
+$string['illegalformulasyntax'] = 'Illegal formula syntax starting with \'{$a}\'';
 $string['incorrectfeedback'] = 'For any incorrect response';
 $string['item(s)'] = 'item(s)';
 $string['itemno'] = 'Item {$a}';
@@ -76,9 +85,13 @@ $string['keptlocal2'] = 'a file from the same question private set of files as b
 $string['keptlocal3'] = 'a link from the same question private set of links as before';
 $string['lastitem(s)'] = 'last items(s)';
 $string['loguniform'] = 'Loguniform';
+$string['loguniformbit'] = 'digits, from a loguniform distribution';
 $string['makecopynextpage'] = 'Next page (new question)';
 $string['mandatoryhdr'] = 'Mandatory wild cards present in answers';
 $string['minmax'] = 'Range of Values';
+$string['missingformula'] = 'Missing formula';
+$string['missingname'] = 'Missing question name';
+$string['missingquestiontext'] = 'Missing question text';
 $string['mustbenumeric'] = 'You must enter a number here.';
 $string['mustnotbenumeric'] = 'This can\'t be a number.';
 $string['newcategory1'] = 'will use a new shared dataset';
@@ -106,6 +119,8 @@ $string['reuseifpossible'] = 'reuse previous value if available';
 $string['sharedwildcard']='Shared wild card <strong>{$a}</strong>';
 $string['sharedwildcardname']='Shared wild card ';
 $string['sharedwildcards']='Shared wild cards';
+$string['significantfigures'] = 'with {$a}';
+$string['significantfiguresformat'] = 'significant figures';
 $string['synchronize']='Synchronize the data from shared datasets with other questions in a quiz';
 $string['synchronizeno']='Do not synchronize';
 $string['synchronizeyes']='Synchronize';
@@ -114,6 +129,7 @@ $string['tolerance'] = 'Tolerance &plusmn;';
 $string['trueanswerinsidelimits'] = 'Correct answer : {$a->correct} inside limits of true value {$a->true}';
 $string['trueansweroutsidelimits'] = '<span class="error">ERROR Correct answer : {$a->correct} outside limits of true value {$a->true}</span>';
 $string['uniform'] = 'Uniform';
+$string['uniformbit'] = 'decimals, from a uniform distribution';
 $string['updatecategory'] = 'Update the category';
 $string['updatedatasetparam'] = 'Update the datasets parameters';
 $string['updatetolerancesparam'] = 'Update the answers tolerance parameters';
@@ -126,6 +142,7 @@ $string['setno'] = 'Set {$a}';
 $string['setwildcardvalues'] = 'set(s) of wild card(s) values';
 $string['showitems'] = 'Display';
 $string['updatewildcardvalues'] = 'Update the wild card(s) values';
+$string['unsupportedformulafunction'] = 'The function {$a} is not supported';
 $string['useadvance'] = 'Use the advance button to see the errors';
 $string['wildcard'] = 'Wild card {<strong>{$a}</strong>}';
 $string['wildcardparam'] = 'Wild cards parameters used to generate the values';
@@ -133,4 +150,4 @@ $string['wildcardrole'] = 'The wild cards <strong>{x..}</strong> will be substit
 $string['wildcards'] = 'Wild cards {a}...{z}';
 $string['wildcardvalues'] = 'Wild card(s) values';
 $string['wildcardvaluesgenerated'] = 'Wild card(s) values generated';
-
+$string['zerosignificantfiguresnotallowed'] = 'The correct answer cannot have zero significant figures!';
index 3df4ef5..bd74a65 100644 (file)
@@ -452,16 +452,16 @@ class question_calculated_qtype extends default_questiontype {
         case 'question':
             $calculatedmessages = array();
             if (empty($form->name)) {
-                $calculatedmessages[] = get_string('missingname', 'quiz');
+                $calculatedmessages[] = get_string('missingname', 'qtype_calculated');
             }
             if (empty($form->questiontext)) {
-                $calculatedmessages[] = get_string('missingquestiontext', 'quiz');
+                $calculatedmessages[] = get_string('missingquestiontext', 'qtype_calculated');
             }
             // Verify formulas
             foreach ($form->answers as $key => $answer) {
                 if ('' === trim($answer)) {
                     $calculatedmessages[] =
-                        get_string('missingformula', 'quiz');
+                        get_string('missingformula', 'qtype_calculated');
                 }
                 if ($formulaerrors =
                     qtype_calculated_find_formula_errors($answer)) {
@@ -472,7 +472,7 @@ class question_calculated_qtype extends default_questiontype {
                 }
                 if (! is_numeric($form->tolerance[$key])) {
                     $calculatedmessages[] =
-                        get_string('tolerancemustbenumeric', 'quiz');
+                        get_string('tolerancemustbenumeric', 'qtype_calculated');
                 }
             }
 
@@ -492,10 +492,10 @@ class question_calculated_qtype extends default_questiontype {
         return true;
     }
     function finished_edit_wizard(&$form) {
-        return isset($form->backtoquiz);
+        return isset($form->savechanges);
     }
     function wizard_pages_number() {
-        return 3 ;
+        return 3;
     }
     // This gets called by editquestion.php after the standard question is saved
     function print_next_wizard_page(&$question, &$form, $course) {
@@ -1025,15 +1025,15 @@ class question_calculated_qtype extends default_questiontype {
                 for ($i = 0 ; $i<10 ; ++$i) {
                     $lengthoptions[$i] = get_string(($regs[1] == 'uniform'
                         ? 'decimals'
-                        : 'significantfigures'), 'quiz', $i);
+                        : 'significantfigures'), 'qtype_calculated', $i);
                 }
                 $menu1 = html_writer::select($lengthoptions, 'calclength[]', $regs[4], null);
 
-                $options = array('uniform' => get_string('uniform', 'quiz'), 'loguniform' => get_string('loguniform', 'quiz'));
+                $options = array('uniform' => get_string('uniformbit', 'qtype_calculated'), 'loguniform' => get_string('loguniformbit', 'qtype_calculated'));
                 $menu2 = html_writer::select($options, 'calcdistribution[]', $regs[1], null);
                 return '<input type="submit" onclick="'
                     . "getElementById('addform').regenerateddefid.value='$defid'; return true;"
-                    .'" value="'. get_string('generatevalue', 'quiz') . '"/><br/>'
+                    .'" value="'. get_string('generatevalue', 'qtype_calculated') . '"/><br/>'
                     . '<input type="text" size="3" name="calcmin[]" '
                     . " value=\"$regs[2]\"/> &amp; <input name=\"calcmax[]\" "
                     . ' type="text" size="3" value="' . $regs[3] .'"/> '
@@ -1321,8 +1321,8 @@ class question_calculated_qtype extends default_questiontype {
         }
 
         $answers = fullclone($answers);
-        $strmin = get_string('min', 'quiz');
-        $strmax = get_string('max', 'quiz');
+        $strmin = get_string('min');
+        $strmax = get_string('max');
         $errors = '';
         $delimiter = ': ';
         $virtualqtype =  $qtypeobj->get_virtual_qtype();//& $QTYPES['numerical'];
@@ -1377,8 +1377,8 @@ class question_calculated_qtype extends default_questiontype {
         }
 
         $answers = fullclone($answers);
-        $strmin = get_string('min', 'quiz');
-        $strmax = get_string('max', 'quiz');
+        $strmin = get_string('min');
+        $strmax = get_string('max');
         $errors = '';
         $delimiter = ': ';
         foreach ($answers as $key => $answer) {
@@ -1450,9 +1450,9 @@ class question_calculated_qtype extends default_questiontype {
     }
 
     function tolerance_types() {
-        return array('1'  => get_string('relative', 'quiz'),
-            '2'  => get_string('nominal', 'quiz'),
-            '3'  => get_string('geometric', 'quiz'));
+        return array('1'  => get_string('relative', 'qtype_numerical'),
+            '2'  => get_string('nominal', 'qtype_numerical'),
+            '3'  => get_string('geometric', 'qtype_numerical'));
     }
 
     function dataset_options($form, $name, $mandatory=true,$renameabledatasets=false) {
@@ -1795,7 +1795,7 @@ class question_calculated_qtype extends default_questiontype {
         return $dataset;
     }
 
-    function dataset_options_from_database($form, $name,$prefix='',$langfile='quiz') {
+    function dataset_options_from_database($form, $name,$prefix='',$langfile='qtype_calculated') {
         global $CFG, $DB;
         $type = 1 ; // only type = 1 (i.e. old 'LITERAL') has ever been used
 
@@ -1895,9 +1895,9 @@ class question_calculated_qtype extends default_questiontype {
         global $CFG, $DB;
         $datasetdefs = array();
         $lnamemax = 22;
-        $namestr =get_string('name', 'quiz');
-        $minstr=get_string('min', 'quiz');
-        $maxstr=get_string('max', 'quiz');
+        $namestr =get_string('name');
+        $minstr=get_string('min');
+        $maxstr=get_string('max');
         $rangeofvaluestr=get_string('minmax','qtype_calculated');
         $questionusingstr = get_string('usedinquestion','qtype_calculated');
         $itemscountstr = get_string('itemscount','qtype_calculated');
@@ -2050,17 +2050,6 @@ class question_calculated_qtype extends default_questiontype {
         /// Returns the possible dataset names found in the text as an array
         /// The array has the dataset name for both key and value
         $equations = array();
- /*               $qtext = "";
-        $qtextremaining = $numericalquestion->questiontext ;
-        while  (preg_match('~\{=([^[:space:]}]*)}~', $qtextremaining, $regs1)) {
-      //  while  (preg_match('~\{=|%=([^[:space:]}]*)}~', $qtextremaining, $regs1)) {
-            $qtextsplits = explode($regs1[0], $qtextremaining, 2);
-            $qtext =$qtext.$qtextsplits[0];
-            $qtextremaining = $qtextsplits[1];
-            if (empty($regs1[1])) {
-                    $str = '';
-                } else {
-  */
         while (preg_match('~\{=([^[:space:]}]*)}~', $text, $regs)) {
             $equations[] = $regs[1];
             $text = str_replace($regs[0], '', $text);
@@ -2302,14 +2291,14 @@ function qtype_calculated_find_formula_errors($formula) {
             // Simple parenthesis
         case '':
             if ((isset($regs[4])&& $regs[4]) || strlen($regs[3])==0) {
-                return get_string('illegalformulasyntax', 'quiz', $regs[0]);
+                return get_string('illegalformulasyntax', 'qtype_calculated', $regs[0]);
             }
             break;
 
             // Zero argument functions
         case 'pi':
             if ($regs[3]) {
-                return get_string('functiontakesnoargs', 'quiz', $regs[2]);
+                return get_string('functiontakesnoargs', 'qtype_calculated', $regs[2]);
             }
             break;
 
@@ -2322,33 +2311,33 @@ function qtype_calculated_find_formula_errors($formula) {
         case 'octdec': case 'rad2deg': case 'sin': case 'sinh': case 'sqrt':
         case 'tan': case 'tanh':
             if (!empty($regs[4]) || empty($regs[3])) {
-                return get_string('functiontakesonearg','quiz',$regs[2]);
+                return get_string('functiontakesonearg','qtype_calculated',$regs[2]);
             }
             break;
 
             // Functions that take one or two arguments
         case 'log': case 'round':
             if (!empty($regs[5]) || empty($regs[3])) {
-                return get_string('functiontakesoneortwoargs','quiz',$regs[2]);
+                return get_string('functiontakesoneortwoargs','qtype_calculated',$regs[2]);
             }
             break;
 
             // Functions that must have two arguments
         case 'atan2': case 'fmod': case 'pow':
             if (!empty($regs[5]) || empty($regs[4])) {
-                return get_string('functiontakestwoargs', 'quiz', $regs[2]);
+                return get_string('functiontakestwoargs', 'qtype_calculated', $regs[2]);
             }
             break;
 
             // Functions that take two or more arguments
         case 'min': case 'max':
             if (empty($regs[4])) {
-                return get_string('functiontakesatleasttwo','quiz',$regs[2]);
+                return get_string('functiontakesatleasttwo','qtype_calculated',$regs[2]);
             }
             break;
 
         default:
-            return get_string('unsupportedformulafunction','quiz',$regs[2]);
+            return get_string('unsupportedformulafunction','qtype_calculated',$regs[2]);
         }
 
         // Exchange the function call with '1' and then chack for
@@ -2363,7 +2352,7 @@ function qtype_calculated_find_formula_errors($formula) {
     }
 
     if (preg_match("~[^$safeoperatorchar.0-9eE]+~", $formula, $regs)) {
-        return get_string('illegalformulasyntax', 'quiz', $regs[0]);
+        return get_string('illegalformulasyntax', 'qtype_calculated', $regs[0]);
     } else {
         // Formula just might be valid
         return false;
index cfc08f6..e8aa0c5 100644 (file)
@@ -72,9 +72,9 @@ class question_edit_calculatedmulti_form extends question_edit_form {
         $repeated = array();
         $repeated[] =& $mform->createElement('header', 'answerhdr', $label);
         //   if ($this->editasmultichoice == 1){
-        $repeated[] =& $mform->createElement('text', 'answer', get_string('answer', 'quiz'), array('size' => 50));
+        $repeated[] =& $mform->createElement('text', 'answer', get_string('answer', 'question'), array('size' => 50));
         $repeated[] =& $mform->createElement('select', 'fraction', get_string('grade'), $gradeoptions);
-        $repeated[] =& $mform->createElement('editor', 'feedback', get_string('feedback', 'quiz'), null, $this->editoroptions);
+        $repeated[] =& $mform->createElement('editor', 'feedback', get_string('feedback', 'question'), null, $this->editoroptions);
         $repeatedoptions['answer']['type'] = PARAM_RAW;
         $repeatedoptions['fraction']['default'] = 0;
         $answersoption = 'answers';
@@ -90,7 +90,7 @@ class question_edit_calculatedmulti_form extends question_edit_form {
         $addrepeated[] =&  $mform->createElement('select', 'correctanswerlength', get_string('correctanswershows', 'qtype_calculated'), range(0, 9));
         $repeatedoptions['correctanswerlength']['default'] = 2;
 
-        $answerlengthformats = array('1' => get_string('decimalformat', 'quiz'), '2' => get_string('significantfiguresformat', 'quiz'));
+        $answerlengthformats = array('1' => get_string('decimalformat', 'qtype_numerical'), '2' => get_string('significantfiguresformat', 'qtype_calculated'));
         $addrepeated[] =&  $mform->createElement('select', 'correctanswerformat', get_string('correctanswershowsformat', 'qtype_calculated'), $answerlengthformats);
         array_splice($repeated, 3, 0, $addrepeated);
         $repeated[1]->setLabel('...<strong>{={x}+..}</strong>...');
@@ -353,7 +353,7 @@ class question_edit_calculatedmulti_form extends question_edit_form {
                 if ($trimmedanswer!=''){
                     if ('2' == $data['correctanswerformat'][$key]
                         && '0' == $data['correctanswerlength'][$key]) {
-                            $errors['correctanswerlength['.$key.']'] = get_string('zerosignificantfiguresnotallowed','quiz');
+                            $errors['correctanswerlength['.$key.']'] = get_string('zerosignificantfiguresnotallowed','qtype_calculated');
                         }
                     if (!is_numeric($data['tolerance'][$key])){
                         $errors['tolerance['.$key.']'] = get_string('mustbenumeric', 'qtype_calculated');
index 7be14d0..cc6ffbb 100644 (file)
@@ -409,8 +409,8 @@ class question_calculatedmulti_qtype extends question_calculated_qtype {
     }*/
 
         $answers = fullclone($answers);
-        $strmin = get_string('min', 'quiz');
-        $strmax = get_string('max', 'quiz');
+        $strmin = get_string('min');
+        $strmax = get_string('max');
         $errors = '';
         $delimiter = ': ';
         foreach ($answers as $key => $answer) {
index 260394d..cbaa1c1 100644 (file)
@@ -288,14 +288,14 @@ class question_edit_calculatedsimple_form extends question_edit_form {
         $addrepeated[] =& $mform->createElement('text', 'tolerance', get_string('tolerance', 'qtype_calculated'));
         $repeatedoptions['tolerance']['type'] = PARAM_NUMBER;
         $repeatedoptions['tolerance']['default'] = 0.01;
-        $addrepeated[] =& $mform->createElement('select', 'tolerancetype', get_string('tolerancetype', 'quiz'), $this->qtypeobj->tolerance_types());
+        $addrepeated[] =& $mform->createElement('select', 'tolerancetype', get_string('tolerancetype', 'qtype_numerical'), $this->qtypeobj->tolerance_types());
         $addrepeated[] =&  $mform->createElement('select', 'correctanswerlength', get_string('correctanswershows', 'qtype_calculated'), range(0, 9));
         $repeatedoptions['correctanswerlength']['default'] = 2;
 
-        $answerlengthformats = array('1' => get_string('decimalformat', 'quiz'), '2' => get_string('significantfiguresformat', 'quiz'));
+        $answerlengthformats = array('1' => get_string('decimalformat', 'qtype_numerical'), '2' => get_string('significantfiguresformat', 'qtype_numerical'));
         $addrepeated[] =&  $mform->createElement('select', 'correctanswerformat', get_string('correctanswershowsformat', 'qtype_calculated'), $answerlengthformats);
         array_splice($repeated, 3, 0, $addrepeated);
-        $repeated[1]->setLabel(get_string('correctanswerformula', 'quiz').'=');
+        $repeated[1]->setLabel(get_string('correctanswerformula', 'qtype_calculated').'=');
 
         return $repeated;
     }
@@ -740,7 +740,7 @@ class question_edit_calculatedsimple_form extends question_edit_form {
             if ($trimmedanswer!=''){
                 if ('2' == $data['correctanswerformat'][$key]
                         && '0' == $data['correctanswerlength'][$key]) {
-                    $errors['correctanswerlength['.$key.']'] = get_string('zerosignificantfiguresnotallowed','quiz');
+                    $errors['correctanswerlength['.$key.']'] = get_string('zerosignificantfiguresnotallowed','qtype_calculated');
                 }
                 if (!is_numeric($data['tolerance'][$key])){
                     $errors['tolerance['.$key.']'] = get_string('mustbenumeric', 'qtype_calculated');
@@ -803,7 +803,7 @@ class question_edit_calculatedsimple_form extends question_edit_form {
         if ($maxgrade == false) {
             $errors['fraction[0]'] = get_string('fractionsnomax', 'question');
         }
-        if (isset($data['backtoquiz']) && ($this->noofitems==0) ){
+        if (isset($data['savechanges']) && ($this->noofitems==0) ){
             $errors['warning'] = get_string('warning', 'mnet');
         }
         if ($this->outsidelimit){
index f52bef3..d5dce4c 100644 (file)
@@ -232,7 +232,7 @@ class question_calculatedsimple_qtype extends question_calculated_qtype {
         return true;
     }
     function finished_edit_wizard(&$form) {
-        return true ; //isset($form->backtoquiz);
+        return true ;
     }
     function wizard_pages_number() {
         return 1 ;
@@ -277,9 +277,9 @@ class question_calculatedsimple_qtype extends question_calculated_qtype {
     }
 
     function tolerance_types() {
-        return array('1'  => get_string('relative', 'quiz'),
-            '2'  => get_string('nominal', 'quiz'),
-            //        '3'  => get_string('geometric', 'quiz')
+        return array('1'  => get_string('relative', 'qtype_numerical'),
+            '2'  => get_string('nominal', 'qtype_numerical'),
+            //        '3'  => get_string('geometric', 'qtype_numerical')
         );
     }
 
index f2c47e5..bf84942 100644 (file)
@@ -30,12 +30,12 @@ var ddwtos_currentzindex = 10;
 
 /*
  * The way it seems to be, if there are more than one of this type of question
- * in a quiz, then this file is shared between them. Therefore it has to cope
+ * on a page, then this file is shared between them. Therefore it has to cope
  * with ALL the questions of this type on the page.
  */
 (function() {
 
-    // start of App object SHARED BY ALL QUESTIONS OF THIS TYPE IN THE QUIZ /////
+    // start of App object by all questions of this type on a page.
     YAHOO.example.DDApp = {
         init : function() {
             var questionspans = YAHOO.util.Dom.getElementsByClassName("ddwtos_questionid_for_javascript");
@@ -43,7 +43,7 @@ var ddwtos_currentzindex = 10;
             // we need this loop in case of more than one of this qtype on one page
             for (var i = 0; i < questionspans.length; i++) {
                 // The Questions object should now contain a QuestionDataObject
-                //object for each question of this type in the quiz.
+                // object for each question of this type on the page.
                 Questions[questionspans[i].id] = new QuestionDataObject(questionspans[i].id);
             }
 
index 271822a..bde9918 100644 (file)
@@ -29,5 +29,5 @@ $string['description'] = 'Description';
 $string['description_help'] = 'A description is not really a question type. It simply enables text to be displayed without requiring any answers, similar to a label on the course page.
 
 The question text is displayed both during the attempt and on the review page. Any general feedback is displayed on the review page only.';
-$string['descriptionsummary'] = 'This is not actually a question. Instead it is a way to add some instructions, rubric or other content to the quiz. This is similar to the way that labels can be used to add content to the course page.';
+$string['descriptionsummary'] = 'This is not actually a question. Instead it is a way to add some instructions, rubric or other content to the activity. This is similar to the way that labels can be used to add content to the course page.';
 $string['editingdescription'] = 'Editing a Description';
index 5b5c1b7..649a0eb 100644 (file)
@@ -262,9 +262,9 @@ abstract class question_edit_form extends moodleform {
     protected function get_per_answer_fields(&$mform, $label, $gradeoptions, &$repeatedoptions, &$answersoption) {
         $repeated = array();
         $repeated[] = $mform->createElement('header', 'answerhdr', $label);
-        $repeated[] = $mform->createElement('text', 'answer', get_string('answer', 'quiz'), array('size' => 80));
+        $repeated[] = $mform->createElement('text', 'answer', get_string('answer', 'question'), array('size' => 80));
         $repeated[] = $mform->createElement('select', 'fraction', get_string('grade'), $gradeoptions);
-        $repeated[] = $mform->createElement('editor', 'feedback', get_string('feedback', 'quiz'),
+        $repeated[] = $mform->createElement('editor', 'feedback', get_string('feedback', 'question'),
                                 array('rows' => 5), $this->editoroptions);
         $repeatedoptions['answer']['type'] = PARAM_RAW;
         $repeatedoptions['fraction']['default'] = 0;
index 8cddd66..e2b77f8 100644 (file)
@@ -39,8 +39,8 @@ class qtype_match_edit_form extends question_edit_form {
     function get_per_answer_fields($mform, $label, $gradeoptions, &$repeatedoptions, &$answersoption) {
         $repeated = array();
         $repeated[] = $mform->createElement('header', 'answerhdr', $label);
-        $repeated[] = $mform->createElement('editor', 'subquestions', get_string('question', 'quiz'), array('rows'=>3), $this->editoroptions);
-        $repeated[] = $mform->createElement('text', 'subanswers', get_string('answer', 'quiz'), array('size'=>50));
+        $repeated[] = $mform->createElement('editor', 'subquestions', get_string('question', 'question'), array('rows'=>3), $this->editoroptions);
+        $repeated[] = $mform->createElement('text', 'subanswers', get_string('answer', 'question'), array('size'=>50));
         $repeatedoptions['subquestions']['type'] = PARAM_RAW;
         $repeatedoptions['subanswers']['type'] = PARAM_TEXT;
         $answersoption = 'subquestions';
@@ -60,7 +60,7 @@ class qtype_match_edit_form extends question_edit_form {
         $mform->addElement('static', 'answersinstruct', get_string('availablechoices', 'qtype_match'), get_string('filloutthreeqsandtwoas', 'qtype_match'));
         $mform->closeHeaderBefore('answersinstruct');
 
-        $this->add_per_answer_fields($mform, get_string('questionno', 'quiz', '{no}'), 0);
+        $this->add_per_answer_fields($mform, get_string('questionno', 'question', '{no}'), 0);
 
         $this->add_combined_feedback_fields(true);
         $this->add_interactive_settings(true, true);
index b4025eb..dc09c95 100644 (file)
@@ -34,9 +34,10 @@ $string['match'] = 'Matching';
 $string['match_help'] = 'Matching questions require the respondent to correctly match a list of names or statements (questions) to another list of names or statements (answers).';
 $string['match_link'] = 'question/type/match';
 $string['matchsummary'] = 'The answer to each of a number of sub-question must be selected from a list of possibilities.';
+$string['nomatchinganswer'] = 'You must specify an answer matching the question \'{$a}\'.';
 $string['nomatchinganswerforq'] = 'You must specify an answer for this question.';
 $string['notenoughqsandas'] = 'You must supply at least {$a->q} questions and {$a->a} answers.';
 $string['notenoughquestions'] = 'You must supply at least {$a} question and answer pairs.';
 $string['shuffle'] = 'Shuffle';
-$string['shuffle_help'] = 'If enabled, the order of the statements (answers) is randomly shuffled for each attempt, provided that "Shuffle within questions" in the quiz settings is also enabled.';
+$string['shuffle_help'] = 'If enabled, the order of the statements (answers) is randomly shuffled for each attempt, provided that "Shuffle within questions" in the activity settings is also enabled.';
 $string['pleaseananswerallparts'] = 'Please answer all parts of the question.';
index ba228c7..f9fbcb8 100644 (file)
@@ -64,7 +64,7 @@ class qtype_match extends question_type {
                 continue;
             }
             if ($questiontext['text'] != '' && trim($question->subanswers[$key]) == '') {
-                $result->notice = get_string('nomatchinganswer', 'quiz', $questiontext);
+                $result->notice = get_string('nomatchinganswer', 'qtype_match', $questiontext);
             }
 
             // Update an existing subquestion if possible.
@@ -122,7 +122,7 @@ class qtype_match extends question_type {
         }
 
         if (count($subquestions) < 3) {
-            $result->notice = get_string('notenoughanswers', 'quiz', 3);
+            $result->notice = get_string('notenoughanswers', 'question', 3);
             return $result;
         }
 
index 27c2b12..0ca1896 100644 (file)
@@ -159,7 +159,7 @@ class question_edit_multianswer_form extends question_edit_form {
                         $storemess = "<font class=\"error\"> STORED QTYPE ".$question_type_names[$this->savedquestiondisplay->options->questions[$sub]->qtype]."</font >";
                     }
 
-                $mform->addElement('header', 'subhdr'.$sub, get_string('questionno', 'quiz',
+                $mform->addElement('header', 'subhdr'.$sub, get_string('questionno', 'question',
                     '{#'.$sub.'}').'&nbsp;'.$question_type_names[$this->questiondisplay->options->questions[$sub]->qtype].$storemess);
 
                 $mform->addElement('static', 'sub_'.$sub."_".'questiontext', get_string('questiondefinition','qtype_multianswer'),array('cols'=>60, 'rows'=>3));
@@ -168,11 +168,11 @@ class question_edit_multianswer_form extends question_edit_form {
                     $mform->setDefault('sub_'.$sub."_".'questiontext', $this->questiondisplay->options->questions[$sub]->questiontext['text']);
                 }
 
-                $mform->addElement('static', 'sub_'.$sub."_".'defaultgrade', get_string('defaultgrade', 'quiz'));
+                $mform->addElement('static', 'sub_'.$sub."_".'defaultgrade', get_string('defaultgrade', 'question'));
                 $mform->setDefault('sub_'.$sub."_".'defaultgrade',$this->questiondisplay->options->questions[$sub]->defaultgrade);
 
                 if ($this->questiondisplay->options->questions[$sub]->qtype =='shortanswer'   ) {
-                    $mform->addElement('static', 'sub_'.$sub."_".'usecase', get_string('casesensitive', 'quiz'));
+                    $mform->addElement('static', 'sub_'.$sub."_".'usecase', get_string('casesensitive', 'question'));
                 }
 
                 if ($this->questiondisplay->options->questions[$sub]->qtype =='multichoice'   ) {
@@ -180,7 +180,7 @@ class question_edit_multianswer_form extends question_edit_form {
                 }
                 foreach ($this->questiondisplay->options->questions[$sub]->answer as $key =>$ans) {
 
-                    $mform->addElement('static', 'sub_'.$sub."_".'answer['.$key.']', get_string('answer', 'quiz'), array('cols'=>60, 'rows'=>1));
+                    $mform->addElement('static', 'sub_'.$sub."_".'answer['.$key.']', get_string('answer', 'question'), array('cols'=>60, 'rows'=>1));
 
                     if ($this->questiondisplay->options->questions[$sub]->qtype =='numerical' && $key == 0 ) {
                         $mform->addElement('static', 'sub_'.$sub."_".'tolerance['.$key.']', get_string('acceptederror', 'quiz')) ;//, $gradeoptions);
@@ -188,7 +188,7 @@ class question_edit_multianswer_form extends question_edit_form {
 
                     $mform->addElement('static', 'sub_'.$sub."_".'fraction['.$key.']', get_string('grade')) ;//, $gradeoptions);
 
-                    $mform->addElement('static', 'sub_'.$sub."_".'feedback['.$key.']', get_string('feedback', 'quiz'));
+                    $mform->addElement('static', 'sub_'.$sub."_".'feedback['.$key.']', get_string('feedback', 'question'));
                 }
 
             }
@@ -198,7 +198,6 @@ class question_edit_multianswer_form extends question_edit_form {
                 $mform->addElement('header', 'additemhdr', get_string('warningquestionmodified','qtype_multianswer'));
             }
             if($this->negative_diff > 0) {
-                //$this->used_in_quiz
                 $mform->addElement('static', 'alert1', "<strong>".get_string('questiondeleted','qtype_multianswer')."</strong>",get_string('questionsless','qtype_multianswer',$this->negative_diff));
             }
             if($this->qtype_change ) {
@@ -296,11 +295,11 @@ class question_edit_multianswer_form extends question_edit_form {
                         if ($subquestion->qtype =='shortanswer'   ) {
                             switch ($subquestion->usecase) {
                             case '1':
-                                $default_values[$prefix.'usecase']= get_string('caseyes', 'quiz');
+                                $default_values[$prefix.'usecase']= get_string('caseyes', 'qtype_shortanswer');
                                 break;
                             case '0':
                             default :
-                                $default_values[$prefix.'usecase']= get_string('caseno', 'quiz');
+                                $default_values[$prefix.'usecase']= get_string('caseno', 'qtype_shortanswer');
                             }
                         }
 
@@ -344,7 +343,7 @@ class question_edit_multianswer_form extends question_edit_form {
                             if ($subquestion->qtype == 'multichoice' ) {
                                 $this->_form->setElementError($prefix.'answer[0]' ,  get_string('notenoughanswers', 'qtype_multichoice', 2));
                             } else {
-                                $this->_form->setElementError($prefix.'answer[0]' , get_string('notenoughanswers', 'quiz', 1));
+                                $this->_form->setElementError($prefix.'answer[0]' , get_string('notenoughanswers', 'question', 1));
                             }
                         }
                         if ($maxgrade == false) {
@@ -410,7 +409,7 @@ class question_edit_multianswer_form extends question_edit_form {
                         if ( $subquestion->qtype =='multichoice' ) {
                             $errors[$prefix.'answer[0]']= get_string('notenoughanswers', 'qtype_multichoice', 2);
                         }else {
-                            $errors[$prefix.'answer[0]'] = get_string('notenoughanswers', 'quiz', 1);
+                            $errors[$prefix.'answer[0]'] = get_string('notenoughanswers', 'question', 1);
                         }
                     }
                     if ($maxgrade == false) {
index bc2dd6f..cc635b1 100644 (file)
@@ -314,7 +314,7 @@ class embedded_cloze_qtype extends default_questiontype {
         $qtextremaining = format_text($question->questiontext,
                 $question->questiontextformat, $formatoptions, $cmoptions->course);
 
-        $strfeedback = get_string('feedback', 'quiz');
+        $strfeedback = get_string('feedback', 'question');
 
         // The regex will recognize text snippets of type {#X}
         // where the X can be any text not containg } or white-space characters.
@@ -368,7 +368,7 @@ class embedded_cloze_qtype extends default_questiontype {
                     }
                     if ($correctanswer != '' ) {
                         $feedback = '<div class="correctness">';
-                        $feedback .= get_string('correctansweris', 'quiz', s($correctanswer));
+                        $feedback .= get_string('correctansweris', 'question', s($correctanswer));
                         $feedback .= '</div>';
                     }
                 }
@@ -409,7 +409,7 @@ class embedded_cloze_qtype extends default_questiontype {
                     if  ($options->readonly && $options->correct_responses) {
                         $strfeedbackwrapped = get_string('correctanswerandfeedback', 'qtype_multianswer');
                     }else {
-                        $strfeedbackwrapped = get_string('feedback', 'quiz');
+                        $strfeedbackwrapped = get_string('feedback', 'question');
                     }
                     $popup = " onmouseover=\"return overlib('$feedback', STICKY, MOUSEOFF, CAPTION, '$strfeedbackwrapped', FGCOLOR, '#FFFFFF');\" ".
                              " onmouseout=\"return nd();\" ";
index 0aaad11..838aead 100644 (file)
@@ -64,6 +64,6 @@ $string['pleaseselectatleastoneanswer'] = 'Please select at least one answer.';
 $string['selectmulti'] = 'Select one or more:';
 $string['selectone'] = 'Select one:';
 $string['shuffleanswers'] = 'Shuffle the choices?';
-$string['shuffleanswers_help'] = 'If enabled, the order of the answers is randomly shuffled for each attempt, provided that "Shuffle within questions" in the quiz settings is also enabled.';
+$string['shuffleanswers_help'] = 'If enabled, the order of the answers is randomly shuffled for each attempt, provided that "Shuffle within questions" in the activity settings is also enabled.';
 $string['singleanswer'] = 'Choose one answer.';
 $string['toomanyselected'] = 'You have selected too many options.';
index 06cdaf7..8999c85 100644 (file)
@@ -39,7 +39,7 @@ class question_edit_numerical_form extends question_edit_form {
     function get_per_answer_fields(&$mform, $label, $gradeoptions, &$repeatedoptions, &$answersoption) {
         $repeated = parent::get_per_answer_fields($mform, $label, $gradeoptions, $repeatedoptions, $answersoption);
 
-        $tolerance =& $mform->createElement('text', 'tolerance', get_string('acceptederror', 'quiz'));
+        $tolerance =& $mform->createElement('text', 'tolerance', get_string('acceptederror', 'qtype_numerical'));
         $repeatedoptions['tolerance']['type'] = PARAM_NUMBER;
         array_splice($repeated, 3, 0, array($tolerance));
         $repeated[1]->setSize(10);
index e7ac9c7..a1e1b49 100644 (file)
@@ -24,6 +24,7 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
+$string['acceptederror'] = 'Accepted error';
 $string['addingnumerical'] = 'Adding a Numerical question';
 $string['addmoreanswerblanks'] = 'Blanks for {no} More Answers';
 $string['addmoreunitblanks'] = 'Blanks for {no} More Units';
@@ -31,10 +32,12 @@ $string['answermustbenumberorstar'] = 'The answer must be a number, or \'*\'.';
 $string['answerno'] = 'Answer {$a}';
 $string['decfractionofquestiongrade'] = 'as decimal fraction (0-1) of question grade';
 $string['decfractionofresponsegrade'] = 'as decimal fraction (0-1) of response grade';
+$string['decimalformat'] = 'decimals';
 $string['editableunittext'] = 'Text input element';
 $string['editingnumerical'] = 'Editing a Numerical question';
 $string['errornomultiplier'] = 'You must specify a multiplier for this unit.';
 $string['errorrepeatedunit'] = 'You cannot have two units with the same name.';
+$string['geometric'] = 'Geometric';
 $string['instructions'] = 'Instructions ';
 $string['leftexample'] = 'LEFT as $1.00';
 $string['noneditableunittext'] = 'NON editable text of Unit No1';
@@ -59,12 +62,15 @@ If you add the unit kW with a multiplier of 0.001, this will add a correct respo
 
 Note that the accepted error is also multiplied, so an allowed error of 100W would become an error of 0.1kW.';
 $string['manynumerical'] = 'Only the NUMERICAL ANSWER will be graded using optional units ';
+$string['nominal'] = 'Nominal';
 $string['onlynumerical'] = 'Only the NUMERICAL ANSWER will be graded, no units allowed';
 $string['oneunitshown'] = 'Only the NUMERICAL ANSWER will be graded, Unit1 will be shown';
+$string['relative'] = 'Relative';
 $string['rightexample'] = 'RIGHT as 1.00cm';
 $string['selectunits'] = 'Select units';
 $string['selectunit'] = 'Select one unit';
 $string['studentunitanswer'] = 'UNIT ANSWER displayed as a ';
+$string['tolerancetype'] = 'Tolerance type';
 $string['unitchoice'] = 'Multichoice (radio elements)';
 $string['unitdisplay'] = '<STRONG>Unit 1 displayed </STRONG>';
 $string['unitedit'] = 'Edit unit';
index 5ba7587..62e9c07 100644 (file)
@@ -24,7 +24,7 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-$string['accessoutofsequence'] = 'You have accessed this page out of sequence. Please do not use the Back button when attempting quizzes.';
+$string['accessoutofsequence'] = 'You have accessed this page out of sequence. Please do not use the Back button when attempting questions.';
 $string['addengine'] = 'Add another engine';
 $string['addingopaque'] = 'Adding an Opaque question';
 $string['cannotaccessfile'] = 'You are not allowed to access this file.';
index 929d9f3..b2c46f8 100644 (file)
@@ -27,8 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-require_once($CFG->dirroot . '/mod/quiz/locallib.php');
-
 
 /**
  * Unit tests for (some of) ../locallib.php.
index 51e0600..a352f26 100644 (file)
@@ -58,7 +58,7 @@ class qtype_oumultiresponse_edit_form extends question_edit_form {
         $repeated[] = $mform->createElement('header', 'choicehdr', get_string('choiceno', 'qtype_multichoice', '{no}'));
         $repeated[] = $mform->createElement('text', 'answer', get_string('answer', 'question'), array('size' => 50));
         $repeated[] = $mform->createElement('checkbox', 'correctanswer', get_string('correctanswer', 'qtype_oumultiresponse'));
-        $repeated[] = $mform->createElement('editor', 'feedback', get_string('feedback', 'quiz'),
+        $repeated[] = $mform->createElement('editor', 'feedback', get_string('feedback', 'question'),
                                 array('rows' => 5), $this->editoroptions);
 
         // These are returned by arguments passed by reference.
index e8e394f..9afec52 100644 (file)
@@ -355,7 +355,7 @@ class question_type {
         }
 
         if ($question->penalty > 1 or $question->penalty < 0) {
-            $question->errors['penalty'] = get_string('invalidpenalty', 'quiz');
+            $question->errors['penalty'] = get_string('invalidpenalty', 'question');
         }
 
         if (isset($form->defaultmark)) {
index 8c96d18..9b00a1a 100644 (file)
@@ -53,10 +53,10 @@ class question_edit_random_form extends question_edit_form {
         // Standard fields at the start of the form.
         $mform->addElement('header', 'generalheader', get_string("general", 'form'));
 
-        $mform->addElement('questioncategory', 'category', get_string('category', 'quiz'),
+        $mform->addElement('questioncategory', 'category', get_string('category', 'question'),
                 array('contexts' => $this->contexts->having_cap('moodle/question:useall')));
 
-        $mform->addElement('advcheckbox', 'questiontext[text]', get_string('recurse', 'quiz'), null, null, array(0, 1));
+        $mform->addElement('advcheckbox', 'questiontext[text]', get_string('includingsubcategories', 'qtype_random'), null, null, array(0, 1));
 
         $mform->addElement('hidden', 'name');
         $mform->setType('name', PARAM_ALPHA);
index 03504d5..543879c 100644 (file)
@@ -26,8 +26,9 @@
 
 $string['configselectmanualquestions'] = 'Can the random question type select a manually graded question when it is making its random choice of a question from a category?';
 $string['editingrandom'] = 'Editing a random question';
+$string['includingsubcategories'] = 'Including subcategories';
 $string['random'] = 'Random';
-$string['random_help'] = 'A random question is not a question type as such, but is a way of inserting a randomly-chosen question from a specified category into a quiz.';
+$string['random_help'] = 'A random question is not a question type as such, but is a way of inserting a randomly-chosen question from a specified category into an activity.';
 $string['randomqname'] = 'Random ({$a})';
 $string['randomqplusname'] = 'Random ({$a} and sub-categories)';
 $string['selectedby'] = '{$a->questionname} selected by {$a->randomname}';
index 42dbd4f..e275cde 100644 (file)
@@ -55,7 +55,7 @@ class question_edit_randomsamatch_form extends question_edit_form {
 
     function data_preprocessing($question) {
         if (empty($question->name)) {
-            $question->name =  get_string("randomsamatch", "quiz");
+            $question->name = get_string("randomsamatch", "quiz");
         }
 
         if (empty($question->questiontext)) {
index e18f2a4..e88fded 100644 (file)
@@ -118,7 +118,7 @@ class qtype_shortanswer extends question_type {
 
         // Perform sanity checks on fractional grades
         if ($maxfraction != 1) {
-            $result->noticeyesno = get_string('fractionsnomax', 'quiz', $maxfraction * 100);
+            $result->noticeyesno = get_string('fractionsnomax', 'question', $maxfraction * 100);
             return $result;
         }
     }
index 591dff9..39422c0 100644 (file)
@@ -54,7 +54,7 @@ class qtype_truefalse extends question_type {
             $answer->id = $DB->insert_record('question_answers', $answer);
         }
 
-        $answer->answer   = get_string('true', 'quiz');
+        $answer->answer   = get_string('true', 'qtype_truefalse');
         $answer->fraction = $question->correctanswer;
         $answer->feedback = $this->import_or_save_files($question->feedbacktrue,
                 $context, 'question', 'answerfeedback', $answer->id);
@@ -72,7 +72,7 @@ class qtype_truefalse extends question_type {
             $answer->id = $DB->insert_record('question_answers', $answer);
         }
 
-        $answer->answer   = get_string('false', 'quiz');
+        $answer->answer   = get_string('false', 'qtype_truefalse');
         $answer->fraction = 1 - (int)$question->correctanswer;
         $answer->feedback = $this->import_or_save_files($question->feedbackfalse,
                 $context, 'question', 'answerfeedback', $answer->id);