]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-15402: remove has_multiple_instance(), API will know there is multiple instance...
authorjerome <jerome>
Thu, 18 Sep 2008 05:21:51 +0000 (05:21 +0000)
committerjerome <jerome>
Thu, 18 Sep 2008 05:21:51 +0000 (05:21 +0000)
admin/repository.php
admin/settings/plugins.php
lib/adminlib.php
repository/boxnet/repository.class.php
repository/flickr/repository.class.php
repository/flickr_public/repository.class.php
repository/lib.php

index 6370142af905afbc580f435566bb7aa2f5ff1708..008f55de818588d401cf034a2c39d27ed5a5895f 100644 (file)
@@ -98,7 +98,8 @@ if (!empty($edit) || !empty($new)) {
 
         //display instances list and creation form
         if ($edit){
-             if (repository_static_function($edit,"has_multiple_instances")){
+             $instanceoptionnames = repository_static_function($edit, 'get_instance_option_names');
+             if (!empty($instanceoptionnames)){
                 repository_display_instances_list(get_context_instance(CONTEXT_SYSTEM), $edit);
            }
         }
index d11f0b5ba1a2d10537da58635069a9f236e3f508..583381184fb25013c1cbfcd4af2fd1478a13dc62 100644 (file)
@@ -231,10 +231,10 @@ if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext))
     foreach (repository_get_types()
         as $repositorytype)
     {
-      //display setup page for plugins with: general options or multiple instances
-      $adminconfignames = repository_static_function($repositorytype->get_typename(), 'get_type_option_names');
-      if (!empty($adminconfignames)
-          || repository_static_function($repositorytype->get_typename(), 'has_multiple_instances')) {
+      //display setup page for plugins with: general options or multiple instances (e.g. has instance config)
+      $typeoptionnames = repository_static_function($repositorytype->get_typename(), 'get_type_option_names');
+      $instanceoptionnames = repository_static_function($repositorytype->get_typename(), 'get_instance_option_names');
+      if (!empty($typeoptionnames) || !empty($instanceoptionnames)) {
             $ADMIN->add('repositorysettings',
                 new admin_externalpage('repositorysettings'.$repositorytype->get_typename(),
                         $repositorytype->get_readablename(),
index e1d5c45985d9ae4398afd1074b43da7be38bb5a2..d86f7e600328859620db019efccb41b890883e15 100644 (file)
@@ -6154,10 +6154,10 @@ class admin_setting_managerepository extends admin_setting {
         $updowncount=1;
         foreach ($instances as $i) {
             $settings = '';
-            //display edit link only if you can config the type or if it has multiple instances
-            $adminconfignames = repository_static_function($i->get_typename(), 'get_type_option_names');
-            if ( !empty($adminconfignames)
-                 || repository_static_function($i->get_typename(), 'has_multiple_instances')) {
+            //display edit link only if you can config the type or if it has multiple instances (e.g. has instance config)
+            $typeoptionnames = repository_static_function($i->get_typename(), 'get_type_option_names');
+            $instanceoptionnames = repository_static_function($i->get_typename(), 'get_instance_option_names');
+            if ( !empty($typeoptionnames) || !empty($instanceoptionnames)) {
                 $settings .= '<a href="' . $this->baseurl . '&amp;edit=' . $i->get_typename() . '">'
                               . $settingsstr .'</a>' . "\n";
             }
index 28456c13a5a22cb9734449fc3c866a6f6369375d..583dfaa1aa0ac26ec54a82a58b6b3eb664860167 100755 (executable)
@@ -157,18 +157,10 @@ class repository_boxnet extends repository {
         }
     }
 
-    public static function has_multiple_instances() {
-        return false;
-    }
-
     public static function get_type_option_names() {
         return array('api_key');
     }
 
-    public static function get_instance_option_names() {
-        return array('share_url');
-    }
-
     public function type_config_form(&$mform) {
         $public_account = get_config('boxnet', 'public_account');
         $api_key = get_config('boxnet', 'api_key');
@@ -182,7 +174,6 @@ class repository_boxnet extends repository {
     }
 
     public function instance_config_form(&$mform) {
-        //$share_url = get_config('boxnet', 'share_url');
         $mform->addElement('text', 'share_url', get_string('shareurl', 'repository_boxnet'));
     }
 }
index 7b0f8e561b1bfee73d76940a98b8f2021e5cba75..4a99dc7e843905f34d1f5a1ea6061621f2b5c83a 100755 (executable)
@@ -175,26 +175,11 @@ class repository_flickr extends repository {
         return $dir.$file;
     }
 
-    public static function has_multiple_instances() {
-        return false;
-    }
-
-    public function instance_config_form(&$mform) {
-        $mform->addElement('text', 'email_address', get_string('emailaddress', 'repository_flickr'));
-        $mform->addRule('email_address', get_string('required'), 'required', null, 'client');
-    }
-
-    public static function get_instance_option_names() {
-        return array('email_address');
-    }
-
     public function type_config_form(&$mform) {
         global $CFG;
         $api_key = get_config('flickr', 'api_key');
         $secret = get_config('flickr', 'secret');
 
-        
-
         if (empty($api_key)) {
             $api_key = '';
         }
@@ -217,7 +202,6 @@ class repository_flickr extends repository {
               $mform->addElement('static', 'callbackurl', '', get_string('callbackurltext', 'repository_flickr', $callbackurl));
         }
        
-
         $mform->addRule('api_key', $strrequired, 'required', null, 'client');
         $mform->addRule('secret', $strrequired, 'required', null, 'client');
     }
index 24724362eb19af355ed9d69b38638d479b7df118..735f4677cf9ea85c3161e454e54d6e40a8fb9045 100644 (file)
@@ -169,10 +169,6 @@ class repository_flickr_public extends repository {
         return $dir.$file;
     }
 
-    public static function has_multiple_instances() {
-        return true;
-    }
-
     public function instance_config_form(&$mform) {
         $mform->addElement('text', 'email_address', get_string('emailaddress', 'repository_flickr_public'));
         $mform->addRule('email_address', get_string('required'), 'required', null, 'client');
index 4b57c8d79e80c955eda0c91ff4137ecdbe4089c5..74a849e55e72e415351223d810d54bf70456ea81 100644 (file)
@@ -198,10 +198,11 @@ class repository_type {
             //save the options in DB
             $this->update_options();
 
-            //if the plugin type has no multiple so it wont
+            //if the plugin type has no multiple instance (e.g. has no instance option name) so it wont
             //be possible for the administrator to create a instance
             //in this case we need to create an instance
-            if (!repository_static_function($this->_typename,"has_multiple_instances")) {
+            $instanceoptionnames = repository_static_function($this->_typename, 'get_instance_option_names');
+            if (empty($instanceoptionnames)) {
                 $instanceoptions = array();
                 $instanceoptions['name'] = $this->_typename;
                 repository_static_function($this->_typename, 'create', $this->_typename, 0, get_system_context(), $instanceoptions);
@@ -642,12 +643,11 @@ abstract class repository {
             $record->userid    = $userid;
             $id = $DB->insert_record('repository_instances', $record);
             $options = array();
-            if (call_user_func($classname . '::has_multiple_instances')) {
-                $configs = call_user_func($classname . '::get_instance_option_names');
-                foreach ($configs as $config) {
-                    $options[$config] = $params[$config];
-                }
+            $configs = call_user_func($classname . '::get_instance_option_names');
+            foreach ($configs as $config) {
+                $options[$config] = $params[$config];
             }
+            
             if (!empty($id)) {
                 unset($options['name']);
                 $instance = repository_get_instance($id);
@@ -927,15 +927,6 @@ abstract class repository {
      public function instance_config_form(&$mform) {
     }
 
-    /**
-     * Return true if the plugin can have multiple instances
-     * By default: false
-     * @return boolean
-     */
-    public static function has_multiple_instances() {
-        return false;
-    }
-
     /**
      * Return names of the general options
      * By default: no general option name
@@ -1001,7 +992,8 @@ function repository_get_editable_types() {
     $types= repository_get_types(true);
     $editabletypes = array();
     foreach ($types as $type) {
-        if (repository_static_function($type->get_typename(), 'has_multiple_instances')) {
+        $instanceoptionnames = repository_static_function($type->get_typename(), 'get_instance_option_names');
+        if (!empty($instanceoptionnames)) {
             $editabletypes[]=$type;
         }
     }
@@ -1439,7 +1431,8 @@ function repository_display_instances_list($context, $typename = null) {
         foreach ($plugins as $p) {
             $type = repository_get_type_by_typename($p);
             if (!empty($type) && $type->get_visible()) {
-                if (repository_static_function($p, 'has_multiple_instances')) {
+                $instanceoptionnames = repository_static_function($p, 'get_instance_option_names');
+                if (!empty($instanceoptionnames)) {
                     $instancehtml .= '<li><a href="'.$baseurl.'&amp;new='.$p.'">'.get_string('create', 'repository')
                         .' "'.get_string('repositoryname', 'repository_'.$p).'" '
                         .get_string('instance', 'repository').'</a></li>';
@@ -1449,11 +1442,14 @@ function repository_display_instances_list($context, $typename = null) {
         }
         $instancehtml .= '</ul>';
 
-    } else if (repository_static_function($typename, 'has_multiple_instances')) {   //create a unique type of instance
+    } else {
+        $instanceoptionnames = repository_static_function($typename, 'get_instance_option_names');
+        if (!empty($instanceoptionnames)) {   //create a unique type of instance
             $addable = 1;
             $instancehtml .= "<form action='".$baseurl."&amp;new=".$typename."' method='post'>
                 <p style='text-align:center'><input type='submit' value='".get_string('createinstance', 'repository')."'/></p>
                 </form>";     
+        }
     }
 
     if ($addable) {