From 6f3b54c8aa5bd7a2790e893f7074aea68abdb7bf Mon Sep 17 00:00:00 2001 From: tjhunt Date: Tue, 9 Oct 2007 15:44:06 +0000 Subject: [PATCH] MDL-9076 - Move the 'Add 3 more overall feedbacks' button inside that group of elements on the quiz settings form. To make this possible, I added an extra argument to the repeat_elements method, which other people may find helpful on other forms. --- lang/en_utf8/quiz.php | 1 + lib/formslib.php | 8 ++++++-- mod/quiz/mod_form.php | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lang/en_utf8/quiz.php b/lang/en_utf8/quiz.php index d86002802a..c9b76e09e9 100644 --- a/lang/en_utf8/quiz.php +++ b/lang/en_utf8/quiz.php @@ -22,6 +22,7 @@ $string['addingrandom'] = 'Adding a Random Question'; $string['addingrandomsamatch'] = 'Adding a Random Short-Answer Matching question'; $string['addingshortanswer'] = 'Adding a Short-Answer question'; $string['addingtruefalse'] = 'Adding a True/False question'; +$string['addmoreoverallfeedbacks'] = 'Add {no} more feedback fields'; $string['addquestions'] = 'Add questions'; $string['addquestionstoquiz'] = 'Add questions to current quiz'; $string['addrandom'] = 'Add $a random questions'; diff --git a/lib/formslib.php b/lib/formslib.php index b12392b03a..e8a447c695 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -524,9 +524,11 @@ class moodleform { * @param string $addfieldsname name for button to add more fields * @param int $addfieldsno how many fields to add at a time * @param string $addstring name of button, {no} is replaced by no of blanks that will be added. + * @param boolean $addbuttoninside if true, don't call closeHeaderBefore($addfieldsname). Default false. * @return int no of repeats of element in this page */ - function repeat_elements($elementobjs, $repeats, $options, $repeathiddenname, $addfieldsname, $addfieldsno=5, $addstring=null){ + function repeat_elements($elementobjs, $repeats, $options, $repeathiddenname, + $addfieldsname, $addfieldsno=5, $addstring=null, $addbuttoninside=false){ if ($addstring===null){ $addstring = get_string('addfields', 'form', $addfieldsno); } else { @@ -598,7 +600,9 @@ class moodleform { } $mform->addElement('submit', $addfieldsname, $addstring); - $mform->closeHeaderBefore($addfieldsname); + if (!$addbuttoninside) { + $mform->closeHeaderBefore($addfieldsname); + } return $repeats; } diff --git a/mod/quiz/mod_form.php b/mod/quiz/mod_form.php index 002e69009d..fdccacd218 100644 --- a/mod/quiz/mod_form.php +++ b/mod/quiz/mod_form.php @@ -237,7 +237,8 @@ class mod_quiz_mod_form extends moodleform_mod { $mform->setType('feedbackboundaries', PARAM_NOTAGS); $nextel=$this->repeat_elements($repeatarray, $numfeedbacks-1, - array(), 'boundary_repeats', 'boundary_add_fields', 3); + array(), 'boundary_repeats', 'boundary_add_fields', 3, + get_string('addmoreoverallfeedbacks', 'quiz'), true); //put some extra elements in before the button $insertEl = &MoodleQuickForm::createElement('text', "feedbacktext[$nextel]", get_string('feedback', 'quiz'), array('size' => 50)); -- 2.39.5