Browse Source

don't init plugins when loading everything to make a list, duh

Andrew Dolgov 4 years ago
parent
commit
583f163f40
3 changed files with 8 additions and 8 deletions
  1. 6 6
      classes/pluginhost.php
  2. 1 1
      classes/pref/prefs.php
  3. 1 1
      update.php

+ 6 - 6
classes/pluginhost.php

@@ -133,7 +133,7 @@ class PluginHost {
 			return array();
 		}
 	}
-	function load_all($kind, $owner_uid = false) {
+	function load_all($kind, $owner_uid = false, $skip_init = false) {
 
 		$plugins = array_merge(glob("plugins/*"), glob("plugins.local/*"));
 		$plugins = array_filter($plugins, "is_dir");
@@ -141,10 +141,10 @@ class PluginHost {
 
 		asort($plugins);
 
-		$this->load(join(",", $plugins), $kind, $owner_uid);
+		$this->load(join(",", $plugins), $kind, $owner_uid, $skip_init);
 	}
 
-	function load($classlist, $kind, $owner_uid = false) {
+	function load($classlist, $kind, $owner_uid = false, $skip_init = false) {
 		$plugins = explode(",", $classlist);
 
 		$this->owner_uid = (int) $owner_uid;
@@ -181,18 +181,18 @@ class PluginHost {
 					switch ($kind) {
 					case $this::KIND_SYSTEM:
 						if ($this->is_system($plugin)) {
-							$plugin->init($this);
+							if (!$skip_init) $plugin->init($this);
 							$this->register_plugin($class, $plugin);
 						}
 						break;
 					case $this::KIND_USER:
 						if (!$this->is_system($plugin)) {
-							$plugin->init($this);
+							if (!$skip_init) $plugin->init($this);
 							$this->register_plugin($class, $plugin);
 						}
 						break;
 					case $this::KIND_ALL:
-						$plugin->init($this);
+						if (!$skip_init) $plugin->init($this);
 						$this->register_plugin($class, $plugin);
 						break;
 					}

+ 1 - 1
classes/pref/prefs.php

@@ -746,7 +746,7 @@ class Pref_Prefs extends Handler_Protected {
 		$user_enabled = array_map("trim", explode(",", get_pref("_ENABLED_PLUGINS")));
 
 		$tmppluginhost = new PluginHost();
-		$tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"]);
+		$tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"], true);
 		$tmppluginhost->load_data(true);
 
 		foreach ($tmppluginhost->get_plugins() as $name => $plugin) {

+ 1 - 1
update.php

@@ -365,7 +365,7 @@
 
 	if (isset($options["list-plugins"])) {
 		$tmppluginhost = new PluginHost();
-		$tmppluginhost->load_all($tmppluginhost::KIND_ALL);
+		$tmppluginhost->load_all($tmppluginhost::KIND_ALL, false);
 		$enabled = array_map("trim", explode(",", PLUGINS));
 
 		echo "List of all available plugins:\n";