1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * Drag-and-drop words into sentences question definition class.
19 *
20 * @package   qtype_ddwtos
21 * @copyright 2009 The Open University
22 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25
26defined('MOODLE_INTERNAL') || die();
27
28require_once($CFG->dirroot . '/question/type/gapselect/questionbase.php');
29
30
31/**
32 * Represents a drag-and-drop words into sentences question.
33 *
34 * @copyright  2009 The Open University
35 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
36 */
37class qtype_ddwtos_question extends qtype_gapselect_question_base {
38
39    public function summarise_choice($choice) {
40        return $this->html_to_text($choice->text, FORMAT_HTML);
41    }
42}
43
44
45/**
46 * Represents one of the choices (draggable boxes).
47 *
48 * @copyright  2009 The Open University
49 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
50 */
51class qtype_ddwtos_choice {
52    /** @var string Text for the choice */
53    public $text;
54
55    /** @var int Group of the choice */
56    public $draggroup;
57
58    /** @var bool If the choice can be used an unlimited number of times */
59    public $infinite;
60
61    /**
62     * Initialize a choice object.
63     *
64     * @param string $text The text of the choice
65     * @param int $draggroup Group of the drop choice
66     * @param bool $infinite True if the item can be used an unlimited number of times
67     */
68    public function __construct($text, $draggroup = 1, $infinite = false) {
69        $this->text = $text;
70        $this->draggroup = $draggroup;
71        $this->infinite = $infinite;
72    }
73
74    /**
75     * Returns the group of this item.
76     *
77     * @return int
78     */
79    public function choice_group() {
80        return $this->draggroup;
81    }
82}
83