From 9e93222df27db6cf72efa677271a1667ce9a418b Mon Sep 17 00:00:00 2001 From: tjhunt Date: Fri, 5 Jan 2007 16:46:28 +0000 Subject: [PATCH] questioncategory formslib.php form control. --- lib/form/questioncategory.php | 72 +++++++++++++++++++++++++++++++++++ lib/formslib.php | 1 + 2 files changed, 73 insertions(+) create mode 100644 lib/form/questioncategory.php diff --git a/lib/form/questioncategory.php b/lib/form/questioncategory.php new file mode 100644 index 0000000000..fc4b444a1d --- /dev/null +++ b/lib/form/questioncategory.php @@ -0,0 +1,72 @@ +libdir/form/select.php"); + +/** + * HTML class for a drop down element to select a question category. + * @access public + */ +class MoodleQuickForm_questioncategory extends MoodleQuickForm_select { + + /** + * Constructor + * + * @param string $elementName Select name attribute + * @param mixed $elementLabel Label(s) for the select + * @param mixed $attributes Either a typical HTML attribute string or an associative array + * @param array $options additional options. Recognised options are courseid, published and + * only_editable, corresponding to the arguments of question_category_options from moodlelib.php. + * @access public + * @return void + */ + function MoodleQuickForm_questioncategory($elementName = null, + $elementLabel = null, $attributes = null, $options = null) { + HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes, null); + + global $COURSE; + $this->_type = 'questioncategory'; + if (!empty($options['courseid'])) { + $this->_courseid = $options['courseid']; + } else { + $this->_courseid = $COURSE->id; + } + if (!empty($options['published'])) { + $this->_published = $options['published']; + } else { + $this->_published = false; + } + if (!empty($options['only_editable'])) { + $this->_only_editable = $options['only_editable']; + } else { + $this->_only_editable = false; + } + } + + /** + * Called by HTML_QuickForm whenever form event is made on this element + * + * @param string $event Name of event + * @param mixed $arg event arguments + * @param object $caller calling object + * @access public + * @return mixed + */ + function onQuickFormEvent($event, $arg, &$caller) { + switch ($event) { + case 'createElement': + $this->load(question_category_options($this->_courseid, $this->_published, $this->_only_editable)); + break; + } + return parent::onQuickFormEvent($event, $arg, $caller); + } +} +?> \ No newline at end of file diff --git a/lib/formslib.php b/lib/formslib.php index c77b611ec9..f93c04c29a 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -1473,5 +1473,6 @@ MoodleQuickForm::registerElementType('button', "$CFG->libdir/form/button.php", ' MoodleQuickForm::registerElementType('choosecoursefile', "$CFG->libdir/form/choosecoursefile.php", 'MoodleQuickForm_choosecoursefile'); MoodleQuickForm::registerElementType('header', "$CFG->libdir/form/header.php", 'MoodleQuickForm_header'); MoodleQuickForm::registerElementType('submit', "$CFG->libdir/form/submit.php", 'MoodleQuickForm_submit'); +MoodleQuickForm::registerElementType('questioncategory', "$CFG->libdir/form/questioncategory.php", 'MoodleQuickForm_questioncategory'); ?> -- 2.39.5