From 980903e56a23e3473ea8c8d36fc01d2eb90b233b Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Tue, 8 Jul 2014 10:11:40 +0800 Subject: [PATCH] MDL-43948 forms: setting types to filemanager and editor elements --- lib/form/editor.php | 22 +++++++++++++++++++++- lib/form/filemanager.php | 22 ++++++++++++++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/lib/form/editor.php b/lib/form/editor.php index 87d888dbbbd..a463d231362 100644 --- a/lib/form/editor.php +++ b/lib/form/editor.php @@ -97,6 +97,25 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element { editors_head_setup(); } + /** + * 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 + * @return bool + */ + function onQuickFormEvent($event, $arg, &$caller) + { + switch ($event) { + case 'createElement': + $caller->setType($arg[0] . '[format]', PARAM_ALPHANUM); + $caller->setType($arg[0] . '[itemid]', PARAM_INT); + break; + } + return parent::onQuickFormEvent($event, $arg, $caller); + } + /** * Sets name of editor * @@ -388,7 +407,8 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element { if (!during_initial_install() && empty($CFG->adminsetuppending)) { // 0 means no files, -1 unlimited if ($maxfiles != 0 ) { - $str .= ''; + $str .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => $elname.'[itemid]', + 'value' => $draftitemid)); // used by non js editor only $editorurl = new moodle_url("$CFG->wwwroot/repository/draftfiles_manager.php", array( diff --git a/lib/form/filemanager.php b/lib/form/filemanager.php index 77ee16903e5..8140fec153d 100644 --- a/lib/form/filemanager.php +++ b/lib/form/filemanager.php @@ -79,6 +79,24 @@ class MoodleQuickForm_filemanager extends HTML_QuickForm_element { parent::HTML_QuickForm_element($elementName, $elementLabel, $attributes); } + /** + * 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 + * @return bool + */ + function onQuickFormEvent($event, $arg, &$caller) + { + switch ($event) { + case 'createElement': + $caller->setType($arg[0], PARAM_INT); + break; + } + return parent::onQuickFormEvent($event, $arg, $caller); + } + /** * Sets name of filemanager * @@ -263,9 +281,9 @@ class MoodleQuickForm_filemanager extends HTML_QuickForm_element { $output = $PAGE->get_renderer('core', 'files'); $html .= $output->render($fm); - $html .= ''; + $html .= html_writer::empty_tag('input', array('value' => $draftitemid, 'name' => $elname, 'type' => 'hidden')); // label element needs 'for' attribute work - $html .= ''; + $html .= html_writer::empty_tag('input', array('value' => '', 'id' => 'id_'.$elname, 'type' => 'hidden')); return $html; }