]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-16596 basic areafiles formslib element
authorskodak <skodak>
Sat, 20 Sep 2008 20:56:21 +0000 (20:56 +0000)
committerskodak <skodak>
Sat, 20 Sep 2008 20:56:21 +0000 (20:56 +0000)
draftfile.php
files/areafiles.php [new file with mode: 0644]
lib/file/file_browser.php
lib/file/file_info_coursefile.php
lib/file/file_info_stored.php
lib/filelib.php
lib/form/areafiles.php [new file with mode: 0644]
lib/formslib.php
mod/scorm/lib.php

index 70df735ad664c919000d86bb4f110159ec59642a..7ff20c380e1c2ce43585eb402fa344b4ecc6f229 100644 (file)
     }
 
     switch ($filearea) {
-        case 'user_draft'  : $itemid = (int)array_shift($args); break;
-        default:        send_file_not_found();
+        case 'user_draft':
+            $itemid = (int)array_shift($args);
+            break;
+        default:
+            send_file_not_found();
     }
 
     $relativepath = '/'.implode('/', $args);
diff --git a/files/areafiles.php b/files/areafiles.php
new file mode 100644 (file)
index 0000000..90fced9
--- /dev/null
@@ -0,0 +1,209 @@
+<?php // $Id$
+
+    require('../config.php');
+    require_once($CFG->libdir.'/filelib.php');
+
+    $contextid  = required_param('contextid', PARAM_INT);
+    $filearea   = required_param('filearea', PARAM_ALPHAEXT);
+    $itemid     = required_param('itemid', PARAM_INT);
+
+    $filepath   = optional_param('filepath', '/', PARAM_PATH);
+    $filename   = optional_param('filename', '', PARAM_FILE);
+
+    $newdirname = optional_param('newdirname', '', PARAM_FILE);
+    $delete     = optional_param('delete', 0, PARAM_BOOL);
+
+    if (!$context = get_context_instance_by_id($contextid)) {
+        print_error('invalidcontext');
+    }
+
+    require_login();
+    if (isguestuser()) {
+        print_error('noguest');
+    }
+
+    $browser = get_file_browser();
+
+    if (!$area_info = $browser->get_file_info($context, $filearea, $itemid, '/', null)) {
+        error('Can not browse this area!'); // TODO: localise
+    }
+
+    if ($filename === '') {
+        $filename = null;
+    }
+
+    $error = '';
+
+    if ($filepath === '/' and is_null($filename)) {
+        $file_info = $area_info;
+    } else {
+        if (!$file_info = $browser->get_file_info($context, $filearea, $itemid, $filepath, $filename)) {
+            error('Can not browse this directory!'); // TODO: localise
+        }
+    }
+
+/// process actions
+    if ($file_info and $file_info->is_directory() and $file_info->is_writable() and $newdirname !== '' and data_submitted() and confirm_sesskey()) {
+        if ($newdir_info = $file_info->create_directory($newdirname, $USER->id)) {
+            $params = $newdir_info->get_params_rawencoded();
+            $params = implode('&amp;', $params);
+            redirect("areafiles.php?$params");
+        } else {
+            $error = "Could not create new dir"; // TODO: localise
+        }
+    }
+
+    if ($file_info and $file_info->is_directory() and $file_info->is_writable() and isset($_FILES['newfile']) and data_submitted() and confirm_sesskey()) {
+        $file = $_FILES['newfile'];
+        $newfilename = clean_param($file['name'], PARAM_FILE);
+        if (is_uploaded_file($_FILES['newfile']['tmp_name'])) {
+            try {
+                if ($newfile = $file_info->create_file_from_pathname($newfilename, $_FILES['newfile']['tmp_name'], $USER->id)) {
+                    $params = $file_info->get_params_rawencoded();
+                    $params = implode('&amp;', $params);
+                    redirect("areafiles.php?$params");
+
+                } else {
+                    $error = "Could not create upload file"; // TODO: localise
+                }
+            } catch (file_exception $e) {
+                $error = "Exception: Could not create upload file"; // TODO: localise
+            }
+        }
+    }
+
+    if ($file_info and $delete) {
+        if (!data_submitted() or !confirm_sesskey()) {
+            print_header();
+            notify(get_string('deletecheckwarning').': '.$file_info->get_visible_name());
+            $parent_info = $file_info->get_parent();
+
+            $optionsno  = $parent_info->get_params();
+            $optionsyes = $file_info->get_params();
+            $optionsyes['delete'] = 1;
+            $optionsyes['sesskey'] = sesskey();
+
+            notice_yesno (get_string('deletecheckfiles'), 'areafiles.php', 'areafiles.php', $optionsyes, $optionsno, 'post', 'get');
+            print_footer('empty');
+            die;
+        }
+
+        if ($parent_info = $file_info->get_parent() and $parent_info->is_writable()) {
+            if (!$file_info->delete()) {
+                $error = "Could not delete file!"; // TODO: localise
+            }
+            $params = $parent_info->get_params_rawencoded();
+            $params = implode('&amp;', $params);
+            redirect("areafiles.php?$params", $error);
+        }
+    }
+
+    print_header();
+
+    if ($error !== '') {
+        notify($error);
+    }
+
+    echo '<div class="areafiles">';
+    displaydir($file_info);
+    echo '</div>';
+
+    if ($file_info and $file_info->is_directory() and $file_info->is_writable()) {
+
+        echo '<form enctype="multipart/form-data" method="post" action="areafiles.php"><div>';
+        echo '<input type="hidden" name="contextid" value="'.$contextid.'" />';
+        echo '<input type="hidden" name="filearea" value="'.$filearea.'" />';
+        echo '<input type="hidden" name="itemid" value="'.$itemid.'" />';
+        echo '<input type="hidden" name="filepath" value="'.s($filepath).'" />';
+        echo '<input type="hidden" name="filename" value="'.s($filename).'" />';
+        echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
+        echo '<input name="newfile" type="file" />';
+        echo '<input type="submit" value="'.get_string('uploadafile').'" />';
+        echo '</div></form>';
+
+        echo '<form action="areafiles.php" method="post"><div>';
+        echo '<input type="hidden" name="contextid" value="'.$contextid.'" />';
+        echo '<input type="hidden" name="filearea" value="'.$filearea.'" />';
+        echo '<input type="hidden" name="itemid" value="'.$itemid.'" />';
+        echo '<input type="hidden" name="filepath" value="'.s($filepath).'" />';
+        echo '<input type="hidden" name="filename" value="'.s($filename).'" />';
+        echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
+        echo '<input type="text" name="newdirname" value="" />';
+        echo '<input type="submit" value="'.get_string('makeafolder').'" />';
+        echo '</div></form>';
+    }
+
+
+    print_footer('empty');
+
+/// FILE FUNCTIONS ///////////////////////////////////////////////////////////
+
+function displaydir($file_info) {
+    global $CFG;
+
+    $children = $file_info->get_children();
+    $parent_info = $file_info->get_parent();
+
+    $strname     = get_string('name');
+    $strsize     = get_string('size');
+    $strmodified = get_string('modified');
+    $strfolder   = get_string('folder');
+    $strfile     = get_string('file');
+    $strdownload = get_string('download');
+    $strdelete   = get_string('delete');
+    $straction   = get_string('action');
+
+    $parentwritable = $file_info->is_writable();
+
+    $directory = $file_info->get_params();
+    $directory = $directory['filepath'];
+
+    if ($parent_info and $directory !== '/') {
+        $params = $parent_info->get_params_rawencoded();
+        $params = implode('&amp;', $params);
+
+        echo '<div class="folder">';
+        echo '<a href="areafiles.php?'.$params.'"><img src="'.$CFG->pixpath.'/f/parent.gif" class="icon" alt="" />&nbsp;'.get_string('parentfolder').'</a>';
+        echo '</div>';
+    }
+
+    if ($children) {
+        foreach ($children as $child_info) {
+            $filename = $child_info->get_visible_name();
+            $filesize = $child_info->get_filesize();
+            $filesize = $filesize ? display_size($filesize) : '';
+
+            $mimetype = $child_info->get_mimetype();
+
+            $params = $child_info->get_params_rawencoded();
+            $params = implode('&amp;', $params);
+
+            if ($child_info->is_directory()) {
+
+                echo '<div class="folder">';
+                echo "<a href=\"areafiles.php?$params\"><img src=\"$CFG->pixpath/f/folder.gif\" class=\"icon\" alt=\"$strfolder\" />&nbsp;".s($filename)."</a>";
+                if ($parentwritable) {
+                    echo "<a href=\"areafiles.php?$params&amp;sesskey=".sesskey()."&amp;delete=1\"><img src=\"$CFG->pixpath/t/delete.gif\" class=\"iconsmall\" alt=\"$strdelete\" /></a>";
+                }
+                echo '</div>';
+
+            } else {
+
+                $icon = mimeinfo_from_type('icon', $mimetype);
+                echo '<div class="file">';
+                echo "<img src=\"$CFG->pixpath/f/$icon\" class=\"icon\" alt=\"$strfile\" />&nbsp;".s($filename)." ($filesize)";
+                if ($viewurl = $child_info->get_url()) {
+                    echo "&nbsp;".link_to_popup_window ($viewurl, "display",
+                         "<img src=\"$CFG->pixpath/t/preview.gif\" class=\"iconsmall\" alt=\"$strfile\" />&nbsp;",
+                         480, 640, get_string('viewfileinpopup'), null, true);
+                }
+                if ($parentwritable) {
+                    echo "<a href=\"areafiles.php?$params&amp;sesskey=".sesskey()."&amp;delete=1\"><img src=\"$CFG->pixpath/t/delete.gif\" class=\"iconsmall\" alt=\"$strdelete\" /></a>";;
+                }
+                echo '</div>';
+            }
+        }
+    }
+}
+
+?>
index ce0d87a0e75d6bb078187c91cde8c93a8ad116bb..6cbd6ef387e1c4d73a81d9e568c23ca669ad45ab 100644 (file)
@@ -82,7 +82,7 @@ class file_browser {
                         }
                     }
                     $urlbase = $CFG->wwwroot.'/userfile.php';
-                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areauserpersonal', 'repository'), false, true, true);
+                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areauserpersonal', 'repository'), false, true, true, false);
 
                 } else if ($filearea == 'user_profile') {
                     if (is_null($itemid)) {
@@ -112,7 +112,7 @@ class file_browser {
                         }
                     }
                     $urlbase = $CFG->wwwroot.'/userfile.php';
-                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areauserprofile', 'repository'), false, true, true);
+                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areauserprofile', 'repository'), false, true, true, false);
 
 
                 } else if ($filearea == 'user_draft') {
@@ -126,6 +126,10 @@ class file_browser {
                         return null;
                     }
                     $urlbase = $CFG->wwwroot.'/draftfile.php';
+
+                    $filepath = is_null($filepath) ? '/' : $filepath;
+                    $filename = is_null($filename) ? '.' : $filename;
+
                     if (!$storedfile = $fs->get_file($context->id, $filearea, $itemid, $filepath, $filename)) {
                         if ($filepath === '/' and $filename === '.') {
                             $storedfile = new virtual_root_file($context->id, $filearea, $itemid);
@@ -134,7 +138,7 @@ class file_browser {
                             return null;
                         }
                     }
-                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areauserdraft', 'repository'), true, true, true);
+                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areauserdraft', 'repository'), true, true, true, true);
                 }
             }
 
@@ -173,7 +177,7 @@ class file_browser {
                             return null;
                         }
                     }
-                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areacategoryintro', 'repository'), false, true, true);
+                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areacategoryintro', 'repository'), false, true, true, false);
                 }
             }
 
@@ -214,7 +218,7 @@ class file_browser {
                             return null;
                         }
                     }
-                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areacourseintro', 'repository'), false, true, true);
+                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areacourseintro', 'repository'), false, true, true, false);
 
                 } else if ($filearea == 'course_backup') {
                     if (!has_capability('moodle/site:backup', $context) and !has_capability('moodle/site:restore', $context)) {
@@ -233,7 +237,7 @@ class file_browser {
 
                     $downloadable = has_capability('moodle/site:backupdownload', $context);
                     $uploadable   = has_capability('moodle/site:backupupload', $context);
-                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areabackup', 'repository'), false, $downloadable, $uploadable);
+                    return new file_info_stored($this, $context, $storedfile, $urlbase, get_string('areabackup', 'repository'), false, $downloadable, $uploadable, false);
 
                 } else if ($filearea == 'course_content') {
                     if (!has_capability('moodle/course:managefiles', $context)) {
@@ -307,7 +311,7 @@ class file_browser {
                         return null;
                     }
                 }
-                return new file_info_stored($this, $context, $storedfile, $urlbase, $areas[$filearea], false, true, true);
+                return new file_info_stored($this, $context, $storedfile, $urlbase, $areas[$filearea], false, true, true, false);
 
             } else {
                 $fileinfofunction = $modname.'_get_file_info';
@@ -329,7 +333,7 @@ class file_browser {
 
         $storedfiles = $fs->get_directory_files($context->id, $filearea, $itemid, $filepath, false, true, "filepath, filename");
         foreach ($storedfiles as $file) {
-            $result[] = new file_info_stored($this, $context, $file, $urlbase, $areavisiblename, $itemidused, $readaccess, $writeaccess);
+            $result[] = new file_info_stored($this, $context, $file, $urlbase, $areavisiblename, $itemidused, $readaccess, $writeaccess, false);
         }
 
         return $result;
index 9b3e7928f8cd84c7f78d1e37bbd833e8716afc0d..1f201e84120496943d4db03d6e6cefe75d607597 100644 (file)
@@ -4,7 +4,7 @@ class file_info_coursefile extends file_info_stored {
     public function __construct($browser, $context, $storedfile) {
         global $CFG;
         $urlbase = $CFG->wwwroot.'/file.php';
-        parent::__construct($browser, $context, $storedfile, $urlbase, get_string('coursefiles'), false, true, true);
+        parent::__construct($browser, $context, $storedfile, $urlbase, get_string('coursefiles'), false, true, true, false);
     }
 
     public function get_url($forcedownload=false, $https=false) {
index d226d5c27aeddc2b81c34859a770a7f1c98e5c9d..f5df2f108be0098bbf3133b1e5c5b9760ea42dee 100644 (file)
@@ -7,8 +7,9 @@ class file_info_stored extends file_info {
     protected $itemidused;
     protected $readaccess;
     protected $writeaccess;
+    protected $areaonly;
 
-    public function __construct($browser, $context, $storedfile, $urlbase, $areavisiblename, $itemidused, $readaccess, $writeaccess) {
+    public function __construct($browser, $context, $storedfile, $urlbase, $areavisiblename, $itemidused, $readaccess, $writeaccess, $areaonly) {
         parent::__construct($browser, $context);
 
         $this->lf              = $storedfile;
@@ -17,6 +18,7 @@ class file_info_stored extends file_info {
         $this->itemidused      = $itemidused;
         $this->readaccess      = $readaccess;
         $this->writeaccess     = $writeaccess;
+        $this->areaonly        = $areaonly;
     }
 
     public function get_params() {
@@ -39,7 +41,9 @@ class file_info_stored extends file_info {
             $dir = explode('/', $dir);
             $dir = array_pop($dir);
             if ($dir === '') {
-                if ($this->itemidused) {
+                if ($this->areaonly) {
+                    return $this->areavisiblename;
+                } else if ($this->itemidused) {
                     return $this->lf->get_itemid();
                 } else {
                     return $this->areavisiblename;
@@ -110,22 +114,25 @@ class file_info_stored extends file_info {
             return array();
         }
         return $this->browser->build_stored_file_children($this->context, $this->lf->get_filearea(), $this->lf->get_itemid(), $this->lf->get_filepath(),
-                                                         $this->urlbase, $this->areavisiblename, $this->itemidused, $this->readaccess, $this->writeaccess);
+                                                          $this->urlbase, $this->areavisiblename, $this->itemidused, $this->readaccess, $this->writeaccess,
+                                                          $this->areaonly);
     }
 
     public function get_parent() {
-        if (!$this->lf->is_directory()) {
-            return $this->browser->get_file_info($this->context, $this->lf->get_filearea(), $this->lf->get_itemid(), $this->lf->get_filepath(), '.');
-        }
-
-        if ($this->lf->get_filepath() === '/') {
-            if ($this->itemidused) {
+        if ($this->lf->get_filepath() === '/' and $this->lf->is_directory()) {
+            if ($this->areaonly) {
+                return null;
+            } else if ($this->itemidused) {
                 return $this->browser->get_file_info($this->context, $this->lf->get_filearea(), $this->lf->get_itemid());
             } else {
                 return $this->browser->get_file_info($this->context, $this->lf->get_filearea());
             }
         }
 
+        if (!$this->lf->is_directory()) {
+            return $this->browser->get_file_info($this->context, $this->lf->get_filearea(), $this->lf->get_itemid(), $this->lf->get_filepath(), '.');
+        }
+
         $filepath = $this->lf->get_filepath();
         $filepath = trim($filepath, '/');
         $dirs = explode('/', $filepath);
index b0b96df8ed42e7f68ea359ee79eae1a502644905..52522f52b50b251bbe0c6cc1ad403e782bf09272 100644 (file)
@@ -58,19 +58,60 @@ function get_file_url($path, $options=null, $type='coursefile') {
     return $ffurl;
 }
 
+/**
+ * Returns empty user upload draft area information
+ * @return array with area info 
+ */
+function get_new_draftarea() {
+    global $DB, $USER;
+
+    if (isguestuser() or !isloggedin()) {
+        print_error('noguest');
+    }
+
+    $contextid = get_context_instance(CONTEXT_USER, $USER->id)->id;
+    $filearea  = 'user_draft';
+
+    $fs = get_file_storage();
+    $draftitemid = rand(1, 999999999);
+    while ($files = $fs->get_area_files($contextid, $filearea, $draftitemid)) {
+        $draftitemid = rand(1, 999999999);
+    }
+
+    return array('contextid'=>$contextid, 'filearea'=>$filearea, 'itemid'=>$draftitemid);
+}
+
 /**
  * Converts absolute links in text and moves draft files.
  * @param int $draftitemid
- * @param string $text usually html text with embedded links to draft area
  * @param int $contextid
  * @param string $filearea
  * @param int $itemid
+ * @param string $text usually html text with embedded links to draft area
  * @param boolean $https force https
  * @return string text with relative links starting with @@PLUGINFILE@@
  */
-function file_convert_draftarea($text, $draftitemid, $contextid, $filearea, $itemid, $https=false) {
+function file_convert_draftarea($draftitemid, $contextid, $filearea, $itemid, $text=null, $https=false) {
     global $CFG, $USER;
 
+    /// move draft files first
+    $usercontext = get_context_instance(CONTEXT_USER, $USER->id);
+
+    $fs = get_file_storage();
+    if ($files = $fs->get_area_files($usercontext->id, 'user_draft', $draftitemid, 'id', 'false')) {
+        $file_record = array('contextid'=>$contextid, 'filearea'=>$filearea, 'itemid'=>$itemid);
+        foreach ($files as $file) {
+            $fs->create_file_from_stored($file_record, $file);
+            $file->delete();
+        }
+    }
+
+    if (is_null($text)) {
+        return null;
+    }
+
+    /// relink embedded files if text submitted - no absolute links allowed!
+
     if ($CFG->slasharguments) {
         $draftbase = "$CFG->wwwroot/draftfile.php/user_draft/$draftitemid/";
     } else {
@@ -81,21 +122,8 @@ function file_convert_draftarea($text, $draftitemid, $contextid, $filearea, $ite
         $draftbase = str_replace('http://', 'https://', $draftbase);
     }
 
-    // replace absolute links
     $text = str_ireplace($draftbase, '@@PLUGINFILE@@/');
 
-    $usercontext = get_context_instance(CONTEXT_USER, $USER->id);
-
-    // move draft files
-    $fs = get_file_storage();
-    if ($files = $fs->get_area_files($usercontext->id, 'user_draft', $draftitemid, 'id', 'false')) {
-        $file_record = array('contextid'=>$contextid, 'filearea'=>$filearea, 'itemid'=>$itemid);
-        foreach ($files as $file) {
-            $fs->create_file_from_stored($file_record, $file);
-            $file->delete();
-        }
-    }
-
     return $text;
 }
 
diff --git a/lib/form/areafiles.php b/lib/form/areafiles.php
new file mode 100644 (file)
index 0000000..28454ee
--- /dev/null
@@ -0,0 +1,101 @@
+<?php  // $Id$
+
+require_once('HTML/QuickForm/element.php');
+
+class MoodleQuickForm_areafiles extends HTML_QuickForm_element {
+    var $_helpbutton = '';
+    var $_areainfo   = array();
+
+    function MoodleQuickForm_files($elementName=null, $elementLabel=null, $attributes=null) {
+        parent::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+    }
+
+    function setName($name) {
+        $this->updateAttributes(array('name'=>$name));
+    }
+
+    function getName() {
+        return $this->getAttribute('name');
+    }
+
+    function setValue($value) {
+        if (!is_array($value)) {
+            $this->_areainfo = array();
+        } else {
+            $this->_areainfo = $value;
+        }
+    }
+
+    function getValue() {
+        return $this->_areainfo;
+    }
+
+    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);
+    }
+
+    function getHelpButton() {
+        return $this->_helpbutton;
+    }
+
+    function getElementTemplateType() {
+        if ($this->_flagFrozen){
+            return 'nodisplay';
+        } else {
+            return 'default';
+        }
+    }
+
+    function toHtml() {
+        global $CFG;
+
+        if ($this->_flagFrozen) {
+            return $this->getFrozenHtml();
+        }
+
+        $id     = $this->_attributes['id'];
+        $elname = $this->_attributes['name'];
+
+        $value = $this->getValue();
+
+        if (empty($value['contextid'])) {
+            // no existing area info provided - let's use fresh new draft area
+            require_once("$CFG->libdir/filelib.php");
+            $this->setValue(get_new_draftarea());
+            $value = $this->getValue();
+        }
+
+        $contextid = $value['contextid'];
+        $filearea  = $value['filearea'];
+        $itemid    = $value['itemid'];
+
+        $str  = '<input type="hidden" name="'.$elname.'[contextid]" value="'.$contextid.'" />';
+        $str .= '<input type="hidden" name="'.$elname.'[filearea]" value="'.$filearea.'" />';
+        $str .= '<input type="hidden" name="'.$elname.'[itemid]" value="'.$itemid.'" />';
+
+        $url = "$CFG->wwwroot/files/areafiles.php?contextid=$contextid&amp;filearea=$filearea&amp;itemid=$itemid";
+
+        $str .= '<object type="text/html" data="'.$url.'" height="160" width="600" style="border:1px solid #000">Error</object>'; // TODO: localise, fix styles, etc.
+
+        return $str;
+    }
+
+    function exportValue(&$submitValues, $assoc = false) {
+        return array(
+            $this->_attributes['name']['contexid'] => $submitValues[$this->_attributes['name']]['contextid'],
+            $this->_attributes['name']['filearea'] => $submitValues[$this->_attributes['name']]['filearea'],
+            $this->_attributes['name']['itemid']   => $submitValues[$this->_attributes['name']]['itemid'],
+            );
+    }
+}
index 5d19486e92d9be25bd39323c404edb297ad07a57..a7be9935168e8586f48a378d235588ca61f57506 100644 (file)
@@ -2063,6 +2063,7 @@ $GLOBALS['_HTML_QuickForm_default_renderer'] =& new MoodleQuickForm_Renderer();
 
 MoodleQuickForm::registerElementType('checkbox', "$CFG->libdir/form/checkbox.php", 'MoodleQuickForm_checkbox');
 MoodleQuickForm::registerElementType('file', "$CFG->libdir/form/file.php", 'MoodleQuickForm_file');
+MoodleQuickForm::registerElementType('areafiles', "$CFG->libdir/form/areafiles.php", 'MoodleQuickForm_areafiles');
 MoodleQuickForm::registerElementType('filepicker', "$CFG->libdir/form/filepicker.php", 'MoodleQuickForm_filepicker');
 MoodleQuickForm::registerElementType('group', "$CFG->libdir/form/group.php", 'MoodleQuickForm_group');
 MoodleQuickForm::registerElementType('password', "$CFG->libdir/form/password.php", 'MoodleQuickForm_password');
index 5042c38930b070e3c598dec0e9b7639fe12a6a0e..2ca0b9855d86589110a8f648fec6bac5c1731995 100755 (executable)
@@ -738,7 +738,7 @@ function scorm_get_file_info($browser, $areas, $course, $cm, $context, $filearea
                 return parent::get_visible_name();
             }
         }
-        return new scorm_package_file_info($browser, $context, $storedfile, $urlbase, $areas[$filearea], true, true, false);
+        return new scorm_package_file_info($browser, $context, $storedfile, $urlbase, $areas[$filearea], true, true, false, false);
 
     } else if ($filearea === 'scorm_package') {
         $filepath = is_null($filepath) ? '/' : $filepath;