moodle/mod/lesson/editpage_form.php
Sam Hemelryk 0a4abb7306 mod-lesson MDL-21006 Huge refactoring of the lesson code
The following are notable changes made in this commit
* Lesson page type are now class based and extend an abstract class. This includes a class for the page type and a class for the creating/editing a instance of this page.
* Converted all forms to mforms
* Action script located in mod/action/* were worked into the above so far less switch statements and the action directory will be removed.
* Implements a custom renderer
* Converted everything to use page, output, and custom renderer methods
* Replaced all deprecated methods incl. print_textarea conversions
* Tried to cut down on excessive DB calls.
Things worth noting:
* The focus of this patch was on cleaning up the module not rewriting it, as such I have organized NOT rewritten. There are still many areas in the module where the code could be greatly improved however to do so would require a rethink/rewrite
2009-12-16 02:00:48 +00:00

57 lines
1.9 KiB
PHP

<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Generic forms used for page selection
*
* @package lesson
* @copyright 2009 Sam Hemelryk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
**/
/**
* Question selection form
*
* @copyright 2009 Sam Hemelryk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
**/
class lesson_add_page_form_selection extends lesson_add_page_form_base {
public $qtype = 'questiontype';
public $qtypestring = 'selectaqtype';
protected $standard = false;
protected $manager = null;
public function __construct($arg1, $arg2) {
$this->manager = lesson_page_type_manager::get($arg2['lesson']);
parent::__construct($arg1, $arg2);
}
public function custom_definition() {
$mform = $this->_form;
$types = $this->manager->get_page_type_strings(lesson_page::TYPE_QUESTION);
asort($types);
$mform->addElement('select', 'qtype', get_string('selectaqtype', 'lesson'), $types);
$mform->setHelpButton('qtype', array('questiontypes', get_string("questiontype", "lesson"), "lesson"));
}
}
/**
* Dummy class to represent an unknown question type and direct to the selection
* form.
*/
final class lesson_add_page_form_unknown extends lesson_add_page_form_base {}