MDL-20636 Conversion of the essay question type.
[moodle.git] / question / type / essay / renderer.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
19 /**
20  * Essay question renderer class.
21  *
22  * @package qtype_essay
23  * @copyright 2009 The Open University
24  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25  */
28 /**
29  * Generates the output for essay questions.
30  *
31  * @copyright 2009 The Open University
32  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
33  */
34 class qtype_essay_renderer extends qtype_renderer {
35     public function formulation_and_controls(question_attempt $qa,
36             question_display_options $options) {
38         $question = $qa->get_question();
40         // Answer field.
41         $inputname = $qa->get_qt_field_name('answer');
42         $response = $qa->get_last_qt_var('answer', '');
43         if (empty($options->readonly)) {
44             // the student needs to type in their answer so print out a text editor
45             $answer = print_textarea(can_use_html_editor(), 18, 65, 630, 400, $inputname, $response, 0, true);
47         } else {
48             // it is read only, so just format the students answer and output it
49             $formatoptions = new stdClass();
50             $formatoptions->para = false;
51             $answer = html_writer::tag('div', format_text($response, FORMAT_HTML, $formatoptions),
52                     array('class' => 'answerreview'));
53         }
55         $result = '';
56         $result .= html_writer::tag('div', $question->format_questiontext($qa),
57                 array('class' => 'qtext'));
59         $result .= html_writer::start_tag('div', array('class' => 'ablock clearfix'));
60         $result .= html_writer::tag('div', get_string('answer', 'question'), 
61                 array('class' => 'prompt'));
62         $result .= html_writer::tag('div', $answer, array('class' => 'answer'));
63         $result .= html_writer::end_tag('div');
65         return $result;
66     }
67 }