diff --git a/admin/repository.php b/admin/repository.php index 50a08ee2bbc..8f976cf3222 100644 --- a/admin/repository.php +++ b/admin/repository.php @@ -143,8 +143,10 @@ if (($action == 'edit') || ($action == 'new')) { $success = $repositorytype->update_options($settings); } else { $type = new repository_type($plugin, (array)$fromform, $visible); - $type->create(); $success = true; + if (!$repoid = $type->create()) { + $success = false; + } $data = data_submitted(); } if ($success) { diff --git a/repository/lib.php b/repository/lib.php index 8c197ce30cb..7973c6e33d6 100644 --- a/repository/lib.php +++ b/repository/lib.php @@ -255,6 +255,7 @@ class repository_type implements cacheable_object { } //run plugin_init function if (!repository::static_function($this->_typename, 'plugin_init')) { + $this->update_visibility(false); if (!$silent) { throw new repository_exception('cannotinitplugin', 'repository'); } @@ -1139,7 +1140,7 @@ abstract class repository implements cacheable_object { * * @static * @param string $plugin repository plugin name - * @param string $function funciton name + * @param string $function function name * @return mixed */ public static function static_function($plugin, $function) { @@ -1152,14 +1153,6 @@ abstract class repository implements cacheable_object { return false; } - $pname = null; - if (is_object($plugin) || is_array($plugin)) { - $plugin = (object)$plugin; - $pname = $plugin->name; - } else { - $pname = $plugin; - } - $args = func_get_args(); if (count($args) <= 2) { $args = array(); @@ -2437,7 +2430,7 @@ abstract class repository implements cacheable_object { /** * For oauth like external authentication, when external repository direct user back to moodle, - * this funciton will be called to set up token and token_secret + * this function will be called to set up token and token_secret */ public function callback() { }