/**
  * 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);
 }
Exemple #2
0
 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;
 }