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.
}
}
+ /**
+ * 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);
}
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) {