MDL-20636 Fix if the use of the File API so images work in questions.
[moodle.git] / question / type / essay / edit_essay_form.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/>.
18 /**
19  * Defines the editing form for the essay question type.
20  *
21  * @copyright &copy; 2007 Jamie Pratt
22  * @author Jamie Pratt me@jamiep.org
23  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
24  * @package questionbank
25  * @subpackage questiontypes
26  */
28 /**
29  * essay editing form definition.
30  */
31 class question_edit_essay_form extends question_edit_form {
32     /**
33      * Add question-type specific form fields.
34      *
35      * @param MoodleQuickForm $mform the form being built.
36      */
37     function definition_inner(&$mform) {
38         $mform->addElement('editor', 'feedback', get_string('feedback', 'quiz'), null, $this->editoroptions);
39         $mform->setType('feedback', PARAM_RAW);
41         $mform->addElement('hidden', 'fraction', 0);
42         $mform->setType('fraction', PARAM_RAW);
44         //don't need this default element.
45         $mform->removeElement('penalty');
46         $mform->addElement('hidden', 'penalty', 0);
47         $mform->setType('penalty', PARAM_RAW);
48     }
50     function data_preprocessing($question) {
51         if (!empty($question->options) && !empty($question->options->answers)) {
52             $answer = reset($question->options->answers);
53             $question->feedback = array();
54             $draftid = file_get_submitted_draft_itemid('feedback');
55             $question->feedback['text'] = file_prepare_draft_area(
56                 $draftid,       // draftid
57                 $this->context->id,    // context
58                 'question',   // component
59                 'answerfeedback',             // filarea
60                 !empty($answer->id)?(int)$answer->id:null, // itemid
61                 $this->fileoptions,    // options
62                 $answer->feedback      // text
63             );
64             $question->feedback['format'] = $answer->feedbackformat;
65             $question->feedback['itemid'] = $draftid;
66         }
67         $question->penalty = 0;
68         return $question;
69     }
71     function qtype() {
72         return 'essay';
73     }
74 }