/** * Generate the display of the formulation part of the question. This is the * area that contains the quetsion text, and the controls for students to * input their answers. Some question types also embed feedback, for * example ticks and crosses, in this area. * * @param question_attempt $qa the question attempt to display. * @param qbehaviour_renderer $behaviouroutput the renderer to output the behaviour * specific parts. * @param qtype_renderer $qtoutput the renderer to output the question type * specific parts. * @param question_display_options $options controls what should and should not be displayed. * @return HTML fragment. */ protected function formulation(question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options) { //add the question's formulation (main question content) return $qtoutput->formulation_and_controls($qa, $options); }
protected function manual_comment(question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options) { return $qtoutput->manual_comment($qa, $options) . $behaviouroutput->manual_comment($qa, $options); }
public function feedback(question_attempt $qa, question_display_options $options) { $output = ''; if ($options->feedback) { $output .= $this->stack_specific_feedback($qa, $options); } else { if ($qa->get_behaviour_name() == 'interactivecountback') { // The behaviour name test here is a hack. The trouble is that interactive // behaviour does not show feedback if the input is invalid, but we want // to show the CAS errors from the PRT. $output .= $this->stack_specific_feedback_errors_only($qa); } } $output .= parent::feedback($qa, $options); return $output; }