]> git.mjollnir.org Git - moodle.git/commitdiff
"MDL-17014, check soap extension in alfresco plugin"
authordongsheng <dongsheng>
Tue, 28 Oct 2008 03:13:31 +0000 (03:13 +0000)
committerdongsheng <dongsheng>
Tue, 28 Oct 2008 03:13:31 +0000 (03:13 +0000)
repository/alfresco/repository.class.php
repository/lib.php

index 3013615f810862e04dd709f60348c4066463cd3b..addc476cec7dc610597b4f0007f8adb263d2e05e 100755 (executable)
@@ -6,10 +6,6 @@
  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
  */
 require_once($CFG->libdir . '/soaplib.php');
-require_once($CFG->libdir . '/alfresco/Service/Repository.php');
-require_once($CFG->libdir . '/alfresco/Service/Session.php');
-require_once($CFG->libdir . '/alfresco/Service/SpacesStore.php');
-require_once($CFG->libdir . '/alfresco/Service/Node.php');
 
 class repository_alfresco extends repository {
     private $repo = null;
@@ -21,6 +17,10 @@ class repository_alfresco extends repository {
         global $SESSION, $CFG;
         parent::__construct ($repositoryid, $context, $options);
         if (class_exists('SoapClient')) {
+            require_once($CFG->libdir . '/alfresco/Service/Repository.php');
+            require_once($CFG->libdir . '/alfresco/Service/Session.php');
+            require_once($CFG->libdir . '/alfresco/Service/SpacesStore.php');
+            require_once($CFG->libdir . '/alfresco/Service/Node.php');
             $this->repo = new Al_Repository($this->alfresco_url);
             $this->sess_name = 'alfresco_ticket_'.$this->id;
             $this->username   = optional_param('al_username', '', PARAM_RAW);
@@ -38,6 +38,8 @@ class repository_alfresco extends repository {
                 $this->logout();
             }
             $this->current_node = null;
+        } else {
+            $this->disabled = true;
         }
     }
     public function print_login() {
index 33b1ae4a066db5c4cf7abe5c6f6217c8e4638b66..3495d939941467359f7b296449960549e83ad007 100644 (file)
@@ -481,6 +481,9 @@ function repository_get_types($visible=null) {
  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
  */
 abstract class repository {
+    // $disabled can be set to true to disable a plugin by force
+    // example: self::$disabled = true
+    public $disabled = false;
     public $id;
     public $context;
     public $options;
@@ -1130,7 +1133,7 @@ function repository_get_instances($contexts=array(), $userid = null, $onlyvisibl
         $classname = 'repository_' . $repo->repositorytype;//
 
         $repository = new $classname($repo->id, $repo->contextid, $options, $repo->readonly);
-        if (!$onlyvisible || $repository->is_visible()) {
+        if (!$onlyvisible || ($repository->is_visible() && !$repository->disabled)) {
             $ret[] = $repository;
         }
     }