]> git.mjollnir.org Git - moodle.git/commitdiff
"MDL-20602, support FILE_INTERNAL and FILE_EXTERNAL in moodle form elements"
authorDongsheng Cai <unoter@gmail.com>
Mon, 2 Nov 2009 07:18:38 +0000 (07:18 +0000)
committerDongsheng Cai <unoter@gmail.com>
Mon, 2 Nov 2009 07:18:38 +0000 (07:18 +0000)
lib/form/editor.php
lib/form/filemanager.php
lib/form/filepicker.php
lib/form/texturl.js [deleted file]
lib/form/texturl.php [deleted file]
lib/form/url.js
lib/form/url.php

index 0eae06bb1a4cf917d2a0e65142ceabf42757324c..98000aa6deea56d78ff8113ab17af6289d54a42c 100644 (file)
@@ -179,7 +179,7 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element {
 
             require_once($CFG->dirroot.'/repository/lib.php');
             $client_id = uniqid();
-            $repojs = repository_get_client($ctx, $client_id, array('image', 'video', 'media'), '*');
+            $repojs = repository_get_client($ctx, $client_id, array('image', 'video', 'media'), (FILE_EXTERNAL | FILE_INTERNAL));
 
             $str .= $repojs;
             $str .= $PAGE->requires->js_function_call('id2_add_clientid', array($id, $client_id))->asap();
index 35e1b90f4360963f5879b9ed75a761337fbef1fc..1625cd7578f75aa9c6fd9ab7fc3bd1261aa05c29 100644 (file)
@@ -30,7 +30,7 @@ require_once($CFG->dirroot.'/lib/filelib.php');
 
 class MoodleQuickForm_filemanager extends HTML_QuickForm_element {
     public $_helpbutton = '';
-    protected $_options    = array('mainfile'=>'', 'subdirs'=>0, 'maxbytes'=>0, 'maxfiles'=>-1, 'filetypes'=>'*', 'returnvalue'=>'*');
+    protected $_options    = array('mainfile'=>'', 'subdirs'=>0, 'maxbytes'=>0, 'maxfiles'=>-1, 'filetypes'=>'*', 'returntypes'=>FILE_INTERNAL);
 
     function MoodleQuickForm_filemanager($elementName=null, $elementLabel=null, $attributes=null, $options=null) {
         global $CFG, $PAGE;
@@ -189,7 +189,7 @@ class MoodleQuickForm_filemanager extends HTML_QuickForm_element {
         $client_id = uniqid();
 
         // Generate file picker
-        $repojs = repository_get_client($context, $client_id, $this->_options['filetypes'], $this->_options['returnvalue']);
+        $repojs = repository_get_client($context, $client_id, $this->_options['filetypes'], $this->_options['returntypes']);
         $result = new stdclass;
 
         $options = file_get_draft_area_files($draftitemid);
index 8580ff498d55cd8ef2c0091b926071bf9d68f2d6..e7513fcc1cd27960cc8a7c1efdb0cabac6711f51 100644 (file)
@@ -15,7 +15,7 @@ require_once($CFG->dirroot.'/repository/lib.php');
  */
 class MoodleQuickForm_filepicker extends HTML_QuickForm_input {
     public $_helpbutton = '';
-    protected $_options    = array('maxbytes'=>0, 'filetypes'=>'*', 'returnvalue'=>'*');
+    protected $_options    = array('maxbytes'=>0, 'filetypes'=>'*', 'returntypes'=>FILE_INTERNAL);
 
     function MoodleQuickForm_filepicker($elementName=null, $elementLabel=null, $attributes=null, $options=null) {
         global $CFG;
@@ -93,7 +93,7 @@ class MoodleQuickForm_filepicker extends HTML_QuickForm_input {
             $context = get_context_instance(CONTEXT_COURSE, $COURSE->id);
         }
         $client_id = uniqid();
-        $repojs = repository_get_client($context, $client_id, $this->_options['filetypes'], $this->_options['returnvalue']);
+        $repojs = repository_get_client($context, $client_id, $this->_options['filetypes'], $this->_options['returntypes']);
         $PAGE->requires->data_for_js('filepicker', array('maxbytes'=>$this->_options['maxbytes'],'maxfiles'=>1));
         $PAGE->requires->js('lib/form/filepicker.js');
 
diff --git a/lib/form/texturl.js b/lib/form/texturl.js
deleted file mode 100644 (file)
index 84ee211..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-function texturl_callback(params) {
-}
-function texturl_launch_filepicker(id, client_id, itemid) {
-    var picker = document.createElement('DIV');
-    picker.id = 'file-picker-'+client_id;
-    picker.className = 'file-picker';
-    document.body.appendChild(picker);
-    var el=document.getElementById(id);
-    var params = {};
-    params.env = 'texturl';
-    params.itemid = itemid;
-    params.maxbytes = -1;
-    params.maxfiles = -1;
-    params.savepath = '/';
-    params.target = el;
-    params.callback = texturl_callback;
-    var fp = open_filepicker(client_id, params);
-    return false;
-}
diff --git a/lib/form/texturl.php b/lib/form/texturl.php
deleted file mode 100755 (executable)
index f7d5dc0..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-require_once("HTML/QuickForm/text.php");
-
-/**
- * HTML class for a texturl type element
- *
- * @author       Jamie Pratt
- * @access       public
- */
-class MoodleQuickForm_texturl extends HTML_QuickForm_text{
-    /**
-     * html for help button, if empty then no help
-     *
-     * @var string
-     */
-    var $_helpbutton='';
-    var $_hiddenLabel=false;
-
-    function MoodleQuickForm_texturl($elementName=null, $elementLabel=null, $attributes=null, $options=null) {
-        global $CFG;
-        require_once("$CFG->dirroot/repository/lib.php");
-        $options = (array)$options;
-        foreach ($options as $name=>$value) {
-            $this->_options[$name] = $value;
-        }
-        parent::HTML_QuickForm_text($elementName, $elementLabel, $attributes);
-        repository_head_setup();
-    }
-
-    function setHiddenLabel($hiddenLabel){
-        $this->_hiddenLabel = $hiddenLabel;
-    }
-    function toHtml(){
-        global $CFG, $COURSE, $USER, $PAGE;
-        $strsaved = get_string('filesaved', 'repository');
-        $straddlink = get_string('choosealink', 'repository');
-        if ($COURSE->id == SITEID) {
-            $context = get_context_instance(CONTEXT_SYSTEM);
-        } else {
-            $context = get_context_instance(CONTEXT_COURSE, $COURSE->id);
-        }
-        $client_id = uniqid();
-
-        $repojs = repository_get_client($context, $client_id, '*', 'link');
-
-        $PAGE->requires->js('lib/form/texturl.js');
-
-        $id     = $this->_attributes['id'];
-        $elname = $this->_attributes['name'];
-
-        $str = $repojs;
-        if ($this->_hiddenLabel) {
-            $this->_generateId();
-            $str .= '<label class="accesshide" for="'.$this->getAttribute('id').'" >'.
-                        $this->getLabel().'</label>'.parent::toHtml();
-        } else {
-            $str .= parent::toHtml();
-        }
-        $str .= <<<EOD
-<button id="filepicker-btn-{$client_id}" style="display:none" onclick="return texturl_launch_filepicker('$id', '$client_id', 0)">$straddlink</button>
-EOD;
-        // hide the button if javascript is not enabled
-        $str .= $PAGE->requires->js_function_call('show_item', array("filepicker-btn-{$client_id}"))->asap();
-        return $str;
-    }
-   /**
-    * Automatically generates and assigns an 'id' attribute for the element.
-    *
-    * Currently used to ensure that labels work on radio buttons and
-    * checkboxes. Per idea of Alexander Radivanovich.
-    * Overriden in moodleforms to remove qf_ prefix.
-    *
-    * @access private
-    * @return void
-    */
-    function _generateId()
-    {
-        static $idx = 1;
-
-        if (!$this->getAttribute('id')) {
-            $this->updateAttributes(array('id' => 'id_'. substr(md5(microtime() . $idx++), 0, 6)));
-        }
-    } // end func _generateId
-    /**
-     * set html for help button
-     *
-     * @access   public
-     * @param array $help array of arguments to make a help button
-     * @param string $function function name to call to get html
-     */
-    function setHelpButton($helpbuttonargs, $function='helpbutton'){
-        if (!is_array($helpbuttonargs)){
-            $helpbuttonargs=array($helpbuttonargs);
-        }else{
-            $helpbuttonargs=$helpbuttonargs;
-        }
-        //we do this to to return html instead of printing it
-        //without having to specify it in every call to make a button.
-        if ('helpbutton' == $function){
-            $defaultargs=array('', '', 'moodle', true, false, '', true);
-            $helpbuttonargs=$helpbuttonargs + $defaultargs ;
-        }
-        $this->_helpbutton=call_user_func_array($function, $helpbuttonargs);
-    }
-    /**
-     * get html for help button
-     *
-     * @access   public
-     * @return  string html for help button
-     */
-    function getHelpButton(){
-        return $this->_helpbutton;
-    }
-    /**
-     * Slightly different container template when frozen. Don't want to use a label tag
-     * with a for attribute in that case for the element label but instead use a div.
-     * Templates are defined in renderer constructor.
-     *
-     * @return string
-     */
-    function getElementTemplateType(){
-        if ($this->_flagFrozen){
-            return 'static';
-        } else {
-            return 'default';
-        }
-    }
-}
index b5aecf390c8b06caac4bc3fcdb8494f278433260..28cdd7271b3dacd3ee2a594f2694d8ff848b96e4 100644 (file)
@@ -7,7 +7,7 @@ function url_launch_filepicker(id, client_id, itemid) {
     document.body.appendChild(picker);
     var el=document.getElementById(id);
     var params = {};
-    params.env = 'texturl';
+    params.env = 'url';
     params.itemid = itemid;
     params.maxbytes = -1;
     params.maxfiles = -1;
index 30dab1ae7bd7c783fc4daf12d6915070ea58a59a..7d3ace9dfca8953bb2d1ff6b3e54d91104ddc7ad 100755 (executable)
@@ -58,7 +58,7 @@ class MoodleQuickForm_url extends HTML_QuickForm_text{
         }
         $client_id = uniqid();
 
-        $repojs = repository_get_client($context, $client_id, '*', 'link');
+        $repojs = repository_get_client($context, $client_id, '*', FILE_EXTERNAL);
 
         $PAGE->requires->js('lib/form/url.js');
         $str .= $repojs;