Skip to content
Browse files

MDL-37422 Quiz: Group fields related to 'Settings for multiple tries.'

  • Loading branch information...
1 parent 1918a24 commit 6dbc346095d13878026eeb5f8371dfcd14293461 Colin Chambers committed Jan 28, 2013
Showing with 22 additions and 5 deletions.
  1. +1 −0 lang/en/question.php
  2. +17 −5 question/type/edit_question_form.php
  3. +4 −0 theme/base/style/question.css
View
1 lang/en/question.php
@@ -335,6 +335,7 @@
You can use the general feedback to give students a fully worked answer and perhaps a link to more information they can use if they did not understand the questions.';
$string['hidden'] = 'Hidden';
$string['hintn'] = 'Hint {no}';
+$string['hintnoptions'] = 'Hint {no} options';
$string['hinttext'] = 'Hint text';
$string['howquestionsbehave'] = 'How questions behave';
$string['howquestionsbehave_help'] = 'Students can interact with the questions in the quiz in various different ways. For example, you may wish the students to enter an answer to each question and then submit the entire quiz, before anything is graded or they get any feedback. That would be \'Deferred feedback\' mode.
View
22 question/type/edit_question_form.php
@@ -371,24 +371,36 @@ protected function add_combined_feedback_fields($withshownumpartscorrect = false
}
}
+ /**
+ * Create the form elements required by one hint.
+ * @param string $withclearwrong whether this quesiton type uses the 'Clear wrong' option on hints.
+ * @param string $withshownumpartscorrect whether this quesiton type uses the 'Show num parts correct' option on hints.
+ * @return array form field elements for one hint.
+ */
protected function get_hint_fields($withclearwrong = false, $withshownumpartscorrect = false) {
$mform = $this->_form;
+ $repeatedoptions = array();
$repeated = array();
- $repeated[] = $mform->createElement('header', 'hinthdr', get_string('hintn', 'question'));
- $repeated[] = $mform->createElement('editor', 'hint', get_string('hinttext', 'question'),
+ $repeated[] = $mform->createElement('editor', 'hint', get_string('hintn', 'question'),
array('rows' => 5), $this->editoroptions);
$repeatedoptions['hint']['type'] = PARAM_RAW;
+ $optionelements = array();
if ($withclearwrong) {
- $repeated[] = $mform->createElement('advcheckbox', 'hintclearwrong',
+ $optionelements[] = $mform->createElement('advcheckbox', 'hintclearwrong',
get_string('options', 'question'), get_string('clearwrongparts', 'question'));
}
if ($withshownumpartscorrect) {
- $repeated[] = $mform->createElement('advcheckbox', 'hintshownumcorrect', '',
+ $optionelements[] = $mform->createElement('advcheckbox', 'hintshownumcorrect', '',
get_string('shownumpartscorrect', 'question'));
}
+ if (count($optionelements)) {
+ $repeated[] = $mform->createElement('group', 'hintoptions',
+ get_string('hintnoptions', 'question'), $optionelements, null, false);
+ }
+
return array($repeated, $repeatedoptions);
}
@@ -437,7 +449,7 @@ protected function add_interactive_settings($withclearwrong = false,
list($repeated, $repeatedoptions) = $this->get_hint_fields(
$withclearwrong, $withshownumpartscorrect);
$this->repeat_elements($repeated, $repeatsatstart, $repeatedoptions,
- 'numhints', 'addhint', 1, get_string('addanotherhint', 'question'));
+ 'numhints', 'addhint', 1, get_string('addanotherhint', 'question'), true);
}
public function set_data($question) {
View
4 theme/base/style/question.css
@@ -40,6 +40,10 @@
#combinedfeedbackhdr div.fhtmleditor {padding: 0;}
#combinedfeedbackhdr div.fcheckbox {margin-bottom: 1em;}
+#multitriesheader div.fitem_feditor {margin-top: 1em;}
+#multitriesheader div.fitem_fgroup {margin-bottom: 1em;}
+#multitriesheader div.fitem_fgroup fieldset.felement label {margin-left: 0.3em; margin-right: 0.3em;}
+
.que {clear: left;text-align: left;margin: 0 auto 1.8em auto;}
.dir-rtl .que {text-align: right;}

0 comments on commit 6dbc346

Please sign in to comment.
Something went wrong with that request. Please try again.