]> git.mjollnir.org Git - moodle.git/commitdiff
"MDL-18520, file system, supported choose a subdirectory"
authordongsheng <dongsheng>
Tue, 30 Jun 2009 09:10:42 +0000 (09:10 +0000)
committerdongsheng <dongsheng>
Tue, 30 Jun 2009 09:10:42 +0000 (09:10 +0000)
admin/repository.php
admin/repositoryinstance.php
repository/filesystem/repository.class.php

index 67b04aab1b0e996f5995bcbe8821b03d772a8ad5..752a684f6093317c4c772975c03cdbf1c8561ed0 100644 (file)
@@ -68,7 +68,9 @@ if (!empty($edit) || !empty($new)) {
         if ($edit) {
             $settings = array();
             foreach($configs as $config) {
-                $settings[$config] = $fromform->$config;
+                if (!empty($fromform->$config)) {
+                    $settings[$config] = $fromform->$config;
+                }
             }
              $instanceoptionnames = repository::static_function($edit, 'get_instance_option_names');
             if (!empty($instanceoptionnames)) {
index df2e48e6629556e07273e2bddfeda00b2a899ed6..70ed60ea1521994e7554559d4bfa7b444d5f33c7 100644 (file)
@@ -100,8 +100,6 @@ if (!empty($edit) || !empty($new)) {
         print_error('confirmsesskeybad', '', $baseurl);
     }
     $instance = repository::get_type_by_typename($hide);
-    var_dump($instance);
-    var_dump($hide);
     $instance->hide();
     $return = true;
 } else if (!empty($delete)) {
index 73ae5e79a49a324d6fd850e8b74cf4cb41e435ff..c015f183d8d00ed7e54b303f8628ce20a70fd04a 100644 (file)
@@ -14,12 +14,14 @@ class repository_filesystem extends repository {
         global $CFG;
         parent::__construct($repositoryid, $context, $options);
         $this->root_path = $CFG->dataroot.'/repository/';
+        $this->root_path .= ($this->options['fs_path'] . '/');
         if (!empty($options['ajax'])) {
             if (!is_dir($this->root_path)) {
+                $created = mkdir($this->root_path, 0700);
                 $ret = array();
                 $ret['msg'] = get_string('invalidpath', 'repository_filesystem');
                 $ret['nosearch'] = true;
-                if ($options['ajax']) {
+                if ($options['ajax'] && !$created) {
                     echo json_encode($ret);
                     exit;
                 }
@@ -110,7 +112,7 @@ class repository_filesystem extends repository {
     }
 
     public static function get_instance_option_names() {
-        return null;
+        return array('fs_path');
     }
 
     public static function get_type_option_names() {
@@ -118,4 +120,19 @@ class repository_filesystem extends repository {
     }
     public function type_config_form(&$mform) {
     }
+    public function instance_config_form(&$mform) {
+        global $CFG;
+        $path = $CFG->dataroot . '/repository/';
+        if ($handle = opendir($path)) {
+            $fieldname = get_string('path', 'repository_filesystem');
+            while (false !== ($file = readdir($handle))) {
+                if (is_dir($path.$file) && $file != '.' && $file!= '..') {
+                    $mform->addElement('radio', 'fs_path', $fieldname, $file, $file);
+                    $fieldname = '';
+                }
+            }
+            closedir($handle);
+        }
+        $mform->addElement('static', null, '',  get_string('information','repository_filesystem'));
+    }
 }