mirror of
https://github.com/moodle/moodle.git
synced 2025-04-24 09:55:33 +02:00
Merge branch 'MDL-34570-master' of git://github.com/FMCorz/moodle
This commit is contained in:
commit
ed27ce0163
question
behaviour
format/xhtml
type
calculated
essay
match
multianswer
numerical
shortanswer
@ -86,24 +86,30 @@ abstract class qbehaviour_renderer extends plugin_renderer_base {
|
||||
|
||||
$commenteditor = html_writer::tag('div', html_writer::tag('textarea', s($commenttext),
|
||||
array('id' => $id, 'name' => $inputname, 'rows' => 10, 'cols' => 60)));
|
||||
|
||||
$commenteditor .= html_writer::start_tag('div');
|
||||
if (count($formats == 1)) {
|
||||
reset($formats);
|
||||
$commenteditor .= html_writer::empty_tag('input', array('type' => 'hidden',
|
||||
'name' => $inputname . 'format', 'value' => key($formats)));
|
||||
|
||||
} else {
|
||||
$commenteditor .= html_writer::select(
|
||||
$formats, $inputname . 'format', $commentformat, '');
|
||||
}
|
||||
$commenteditor .= html_writer::end_tag('div');
|
||||
|
||||
$editorformat = '';
|
||||
if (count($formats) == 1) {
|
||||
reset($formats);
|
||||
$editorformat .= html_writer::empty_tag('input', array('type' => 'hidden',
|
||||
'name' => $inputname . 'format', 'value' => key($formats)));
|
||||
} else {
|
||||
$editorformat = html_writer::start_tag('div', array('class' => 'fitem'));
|
||||
$editorformat .= html_writer::start_tag('div', array('class' => 'fitemtitle'));
|
||||
$editorformat .= html_writer::tag('label', get_string('format'), array('for'=>'menu'.$inputname.'format'));
|
||||
$editorformat .= html_writer::end_tag('div');
|
||||
$editorformat .= html_writer::start_tag('div', array('class' => 'felement fhtmleditor'));
|
||||
$editorformat .= html_writer::select($formats, $inputname.'format', $commentformat, '');
|
||||
$editorformat .= html_writer::end_tag('div');
|
||||
$editorformat .= html_writer::end_tag('div');
|
||||
}
|
||||
|
||||
$comment = html_writer::tag('div', html_writer::tag('div',
|
||||
html_writer::tag('label', get_string('comment', 'question'),
|
||||
array('for' => $id)), array('class' => 'fitemtitle')) .
|
||||
html_writer::tag('div', $commenteditor, array('class' => 'felement fhtmleditor')),
|
||||
array('class' => 'fitem'));
|
||||
$comment .= $editorformat;
|
||||
|
||||
$mark = '';
|
||||
if ($qa->get_max_mark()) {
|
||||
@ -117,6 +123,7 @@ abstract class qbehaviour_renderer extends plugin_renderer_base {
|
||||
'type' => 'text',
|
||||
'size' => $fieldsize,
|
||||
'name' => $markfield,
|
||||
'id'=> $markfield
|
||||
);
|
||||
if (!is_null($currentmark)) {
|
||||
$attributes['value'] = $qa->format_fraction_as_mark(
|
||||
|
@ -93,18 +93,24 @@ class qformat_xhtml extends qformat_default {
|
||||
}
|
||||
$expout .= "</ul>\n";
|
||||
break;
|
||||
case 'shortanswer':
|
||||
$expout .= "<ul class=\"shortanswer\">\n";
|
||||
$expout .= " <li><input name=\"quest_$id\" type=\"text\" /></li>\n";
|
||||
$expout .= "</ul>\n";
|
||||
case SHORTANSWER:
|
||||
$expout .= html_writer::start_tag('ul', array('class' => 'shortanswer'));
|
||||
$expout .= html_writer::start_tag('li');
|
||||
$expout .= html_writer::label(get_string('answer'), 'quest_'.$id, false, array('class' => 'accesshide'));
|
||||
$expout .= html_writer::empty_tag('input', array('id' => "quest_$id", 'name' => "quest_$id", 'type' => 'text'));
|
||||
$expout .= html_writer::end_tag('li');
|
||||
$expout .= html_writer::end_tag('ul');
|
||||
break;
|
||||
case 'numerical':
|
||||
$expout .= "<ul class=\"numerical\">\n";
|
||||
$expout .= " <li><input name=\"quest_$id\" type=\"text\" /></li>\n";
|
||||
$expout .= "</ul>\n";
|
||||
case NUMERICAL:
|
||||
$expout .= html_writer::start_tag('ul', array('class' => 'numerical'));
|
||||
$expout .= html_writer::start_tag('li');
|
||||
$expout .= html_writer::label(get_string('answer'), 'quest_'.$id, false, array('class' => 'accesshide'));
|
||||
$expout .= html_writer::empty_tag('input', array('id' => "quest_$id", 'name' => "quest_$id", 'type' => 'text'));
|
||||
$expout .= html_writer::end_tag('li');
|
||||
$expout .= html_writer::end_tag('ul');
|
||||
break;
|
||||
case 'match':
|
||||
$expout .= "<ul class=\"match\">\n";
|
||||
case MATCH:
|
||||
$expout .= html_writer::start_tag('ul', array('class' => 'match'));
|
||||
|
||||
// build answer list
|
||||
$ans_list = array();
|
||||
@ -113,20 +119,24 @@ class qformat_xhtml extends qformat_default {
|
||||
}
|
||||
shuffle( $ans_list ); // random display order
|
||||
|
||||
// build drop down for answers
|
||||
$dropdown = "<select name=\"quest_$id\">\n";
|
||||
// Build select options.
|
||||
$selectoptions = array();
|
||||
foreach($ans_list as $ans) {
|
||||
$dropdown .= "<option value=\"" . s($ans) . "\">" . s($ans) . "</option>\n";
|
||||
$selectoptions[s($ans)] = s($ans);
|
||||
}
|
||||
$dropdown .= "</select>\n";
|
||||
|
||||
// finally display
|
||||
// display
|
||||
$option = 0;
|
||||
foreach($question->options->subquestions as $subquestion) {
|
||||
$quest_text = $this->repchar( $subquestion->questiontext );
|
||||
$expout .= " <li>$quest_text</li>\n";
|
||||
$expout .= $dropdown;
|
||||
// build drop down for answers
|
||||
$quest_text = $this->repchar( $subquestion->questiontext );
|
||||
$dropdown = html_writer::label(get_string('answer', 'qtype_match', $option+1), 'quest_'.$id.'_'.$option, false, array('class' => 'accesshide'));
|
||||
$dropdown .= html_writer::select($selectoptions, "quest_{$id}_{$option}", '', false, array('id' => "quest_{$id}_{$option}"));
|
||||
$expout .= html_writer::tag('li', $quest_text);;
|
||||
$expout .= $dropdown;
|
||||
$option++;
|
||||
}
|
||||
$expout .= "</ul>\n";
|
||||
$expout .= html_writer::end_tag('ul');
|
||||
break;
|
||||
case 'description':
|
||||
break;
|
||||
|
@ -49,6 +49,7 @@ $string['datasetrole']= ' The wild cards <strong>{x..}</strong> will be substitu
|
||||
$string['decimals'] = 'with {$a}';
|
||||
$string['deleteitem'] = 'Delete item';
|
||||
$string['deletelastitem'] = 'Delete last item';
|
||||
$string['distributionoption'] = 'Select distribution option';
|
||||
$string['editdatasets'] = 'Edit the wildcards datasets';
|
||||
$string['editdatasets_help'] = 'Wildcard values may be created by entering a number in each wild card field then clicking the add button. To automatically generate 10 or more values, select the number of values required before clicking the add button. A uniform distribution means any value between the limits is equally likely to be generated; a loguniform distribution means that values towards the lower limit are more likely.';
|
||||
$string['editdatasets_link'] = 'question/type/calculated';
|
||||
@ -79,6 +80,7 @@ $string['keptlocal1'] = 'will use the same existing private dataset as before';
|
||||
$string['keptlocal2'] = 'a file from the same question private set of files as before';
|
||||
$string['keptlocal3'] = 'a link from the same question private set of links as before';
|
||||
$string['lastitem(s)'] = 'last items(s)';
|
||||
$string['lengthoption'] = 'Select length option';
|
||||
$string['loguniform'] = 'Loguniform';
|
||||
$string['loguniformbit'] = 'digits, from a loguniform distribution';
|
||||
$string['makecopynextpage'] = 'Next page (new question)';
|
||||
|
@ -751,11 +751,13 @@ class qtype_calculated extends question_type {
|
||||
? 'decimals'
|
||||
: 'significantfigures'), 'qtype_calculated', $i);
|
||||
}
|
||||
$menu1 = html_writer::select($lengthoptions, 'calclength[]', $regs[4], null);
|
||||
$menu1 = html_writer::label(get_string('lengthoption', 'qtype_calculated'), 'menucalclength', false, array('class' => 'accesshide'));
|
||||
$menu1 .= html_writer::select($lengthoptions, 'calclength[]', $regs[4], null);
|
||||
|
||||
$options = array('uniform' => get_string('uniformbit', 'qtype_calculated'),
|
||||
'loguniform' => get_string('loguniformbit', 'qtype_calculated'));
|
||||
$menu2 = html_writer::select($options, 'calcdistribution[]', $regs[1], null);
|
||||
$menu2 = html_writer::label(get_string('distributionoption', 'qtype_calculated'), 'menucalcdistribution', false, array('class' => 'accesshide'));
|
||||
$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', 'qtype_calculated') . '"/><br/>'
|
||||
|
@ -219,12 +219,14 @@ class qtype_essay_format_editor_renderer extends plugin_renderer_base {
|
||||
array('id' => $id, 'name' => $inputname, 'rows' => $lines, 'cols' => 60)));
|
||||
|
||||
$output .= html_writer::start_tag('div');
|
||||
if (count($formats == 1)) {
|
||||
if (count($formats) == 1) {
|
||||
reset($formats);
|
||||
$output .= html_writer::empty_tag('input', array('type' => 'hidden',
|
||||
'name' => $inputname . 'format', 'value' => key($formats)));
|
||||
|
||||
} else {
|
||||
$output .= html_writer::label(get_string('format'), 'menu' . $inputname . 'format', false);
|
||||
$output .= ' ';
|
||||
$output .= html_writer::select($formats, $inputname . 'format', $responseformat, '');
|
||||
}
|
||||
$output .= html_writer::end_tag('div');
|
||||
|
@ -24,6 +24,7 @@
|
||||
*/
|
||||
|
||||
$string['addmoreqblanks'] = '{no} More Sets of Blanks';
|
||||
$string['answer'] = 'Answer {$a}';
|
||||
$string['availablechoices'] = 'Available choices';
|
||||
$string['correctansweris'] = 'The correct answer is: {$a}';
|
||||
$string['filloutthreeqsandtwoas'] = 'You must provide at least two questions and three answers. You can provide extra wrong answers by giving an answer with a blank question. Entries where both the question and the answer are blank will be ignored.';
|
||||
|
@ -53,6 +53,7 @@ class qtype_match_renderer extends qtype_with_combined_feedback_renderer {
|
||||
$result .= html_writer::start_tag('tbody');
|
||||
|
||||
$parity = 0;
|
||||
$i = 1;
|
||||
foreach ($stemorder as $key => $stemid) {
|
||||
|
||||
$result .= html_writer::start_tag('tr', array('class' => 'r' . $parity));
|
||||
@ -80,12 +81,14 @@ class qtype_match_renderer extends qtype_with_combined_feedback_renderer {
|
||||
}
|
||||
|
||||
$result .= html_writer::tag('td',
|
||||
html_writer::label(get_string('answer', 'qtype_match', $i), 'menu' . $qa->get_qt_field_name('sub' . $key), false, array('class' => 'accesshide')) .
|
||||
html_writer::select($choices, $qa->get_qt_field_name('sub' . $key), $selected,
|
||||
array('0' => 'choose'), array('disabled' => $options->readonly)) .
|
||||
' ' . $feedbackimage, array('class' => $classes));
|
||||
|
||||
$result .= html_writer::end_tag('tr');
|
||||
$parity = 1 - $parity;
|
||||
$i++;
|
||||
}
|
||||
$result .= html_writer::end_tag('tbody');
|
||||
$result .= html_writer::end_tag('table');
|
||||
|
@ -228,11 +228,11 @@ class qtype_multianswer_textfield_renderer extends qtype_multianswer_subq_render
|
||||
s($correctanswer->answer), $options);
|
||||
|
||||
$output = '';
|
||||
$output .= html_writer::start_tag('label', array('class' => 'subq'));
|
||||
$output .= html_writer::tag('label', get_string('answer'),
|
||||
array('class' => 'subq accesshide', 'for' => $inputattributes['id']));
|
||||
$output .= html_writer::empty_tag('input', $inputattributes);
|
||||
$output .= $feedbackimg;
|
||||
$output .= $feedbackpopup;
|
||||
$output .= html_writer::end_tag('label');
|
||||
|
||||
return $output;
|
||||
}
|
||||
@ -279,7 +279,6 @@ class qtype_multianswer_multichoice_inline_renderer
|
||||
$inputattributes['class'] = $this->feedback_class($matchinganswer->fraction);
|
||||
$feedbackimg = $this->feedback_image($matchinganswer->fraction);
|
||||
}
|
||||
|
||||
$select = html_writer::select($choices, $qa->get_qt_field_name($fieldname),
|
||||
$response, array('' => ''), $inputattributes);
|
||||
|
||||
@ -296,11 +295,11 @@ class qtype_multianswer_multichoice_inline_renderer
|
||||
$qa, 'question', 'answer', $rightanswer->id), $options);
|
||||
|
||||
$output = '';
|
||||
$output .= html_writer::start_tag('label', array('class' => 'subq'));
|
||||
$output .= html_writer::tag('label', get_string('answer'),
|
||||
array('class' => 'subq accesshide', 'for' => $inputattributes['id']));
|
||||
$output .= $select;
|
||||
$output .= $feedbackimg;
|
||||
$output .= $feedbackpopup;
|
||||
$output .= html_writer::end_tag('label');
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
@ -26,6 +26,7 @@
|
||||
$string['acceptederror'] = 'Accepted error';
|
||||
$string['addmoreanswerblanks'] = 'Blanks for {no} More Answers';
|
||||
$string['addmoreunitblanks'] = 'Blanks for {no} More Units';
|
||||
$string['answercolon'] = 'Answer:';
|
||||
$string['answermustbenumberorstar'] = 'The answer must be a number, for example -1.234 or 3e8, or \'*\'.';
|
||||
$string['answerno'] = 'Answer {$a}';
|
||||
$string['decfractionofquestiongrade'] = 'as a fraction (0-1) of the question grade';
|
||||
|
@ -98,7 +98,9 @@ class qtype_numerical_renderer extends qtype_renderer {
|
||||
array('class' => 'unitchoices'));
|
||||
|
||||
} else if ($question->unitdisplay == qtype_numerical::UNITSELECT) {
|
||||
$unitchoice = html_writer::select($question->ap->get_unit_options(),
|
||||
$unitchoice = html_writer::label(get_string('selectunit', 'qtype_numerical'),
|
||||
'menu' . $qa->get_qt_field_name('unit'), false, array('class' => 'accesshide'));
|
||||
$unitchoice .= html_writer::select($question->ap->get_unit_options(),
|
||||
$qa->get_qt_field_name('unit'), $selectedunit, array(''=>'choosedots'),
|
||||
array('disabled' => $options->readonly));
|
||||
}
|
||||
@ -111,7 +113,10 @@ class qtype_numerical_renderer extends qtype_renderer {
|
||||
}
|
||||
|
||||
if ($placeholder) {
|
||||
$questiontext = substr_replace($questiontext, $input,
|
||||
$inputinplace = html_writer::tag('label', get_string('answer'),
|
||||
array('for' => $inputattributes['id'], 'class' => 'accesshide'));
|
||||
$inputinplace .= $input;
|
||||
$questiontext = substr_replace($questiontext, $inputinplace,
|
||||
strpos($questiontext, $placeholder), strlen($placeholder));
|
||||
}
|
||||
|
||||
@ -119,8 +124,8 @@ class qtype_numerical_renderer extends qtype_renderer {
|
||||
|
||||
if (!$placeholder) {
|
||||
$result .= html_writer::start_tag('div', array('class' => 'ablock'));
|
||||
$result .= get_string('answer', 'qtype_shortanswer',
|
||||
html_writer::tag('div', $input, array('class' => 'answer')));
|
||||
$result .= html_writer::tag('label', get_string('answercolon', 'qtype_numerical'), array('for' => $inputattributes['id']));
|
||||
$result .= html_writer::tag('span', $input, array('class' => 'answer'));
|
||||
$result .= html_writer::end_tag('div');
|
||||
}
|
||||
|
||||
|
@ -71,11 +71,13 @@ class qtype_shortanswer_renderer extends qtype_renderer {
|
||||
$placeholder = $matches[0];
|
||||
$inputattributes['size'] = round(strlen($placeholder) * 1.1);
|
||||
}
|
||||
|
||||
$input = html_writer::empty_tag('input', $inputattributes) . $feedbackimg;
|
||||
|
||||
if ($placeholder) {
|
||||
$questiontext = substr_replace($questiontext, $input,
|
||||
$inputinplace = html_writer::tag('label', get_string('answer'),
|
||||
array('for' => $inputattributes['id'], 'class' => 'accesshide'));
|
||||
$inputinplace .= $input;
|
||||
$questiontext = substr_replace($questiontext, $inputinplace,
|
||||
strpos($questiontext, $placeholder), strlen($placeholder));
|
||||
}
|
||||
|
||||
@ -83,8 +85,9 @@ class qtype_shortanswer_renderer extends qtype_renderer {
|
||||
|
||||
if (!$placeholder) {
|
||||
$result .= html_writer::start_tag('div', array('class' => 'ablock'));
|
||||
$result .= get_string('answer', 'qtype_shortanswer',
|
||||
html_writer::tag('div', $input, array('class' => 'answer')));
|
||||
$result .= html_writer::tag('label', get_string('answer', 'qtype_shortanswer',
|
||||
html_writer::tag('span', $input, array('class' => 'answer'))),
|
||||
array('for' => $inputattributes['id']));
|
||||
$result .= html_writer::end_tag('div');
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user