From 6ba40a3b85488e140a2a13543243a19d8a3b25ba Mon Sep 17 00:00:00 2001
From: Marina Glancy <marina@moodle.com>
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 87d888d..a463d23 100644
--- a/lib/form/editor.php
+++ b/lib/form/editor.php
@@ -98,6 +98,25 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element {
     }
 
     /**
+     * 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
      *
      * @param string $name name of the 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 .= '<input type="hidden" name="'.$elname.'[itemid]" value="'.$draftitemid.'" />';
+                $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 77ee169..8140fec 100644
--- a/lib/form/filemanager.php
+++ b/lib/form/filemanager.php
@@ -80,6 +80,24 @@ class MoodleQuickForm_filemanager extends HTML_QuickForm_element {
     }
 
     /**
+     * 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
      *
      * @param string $name name of the filemanager
@@ -263,9 +281,9 @@ class MoodleQuickForm_filemanager extends HTML_QuickForm_element {
         $output = $PAGE->get_renderer('core', 'files');
         $html .= $output->render($fm);
 
-        $html .= '<input value="'.$draftitemid.'" name="'.$elname.'" type="hidden" />';
+        $html .= html_writer::empty_tag('input', array('value' => $draftitemid, 'name' => $elname, 'type' => 'hidden'));
         // label element needs 'for' attribute work
-        $html .= '<input value="" id="id_'.$elname.'" type="hidden" />';
+        $html .= html_writer::empty_tag('input', array('value' => '', 'id' => 'id_'.$elname, 'type' => 'hidden'));
 
         return $html;
     }
-- 
1.8.3.2

