From: Andrew Dolgov Date: Thu, 8 Oct 2015 14:02:32 +0000 (+0300) Subject: don't init plugins when loading everything to make a list, duh X-Git-Tag: 16.3~103 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=583f163f40852c8067708a0a69e38e9c27318179;p=tt-rss.git don't init plugins when loading everything to make a list, duh --- diff --git a/classes/pluginhost.php b/classes/pluginhost.php index 75620a19..0f3d8f37 100644 --- a/classes/pluginhost.php +++ b/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; } diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index 41dc536f..9cbc425c 100644 --- a/classes/pref/prefs.php +++ b/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) { diff --git a/update.php b/update.php index 0fa4db0d..96097c56 100755 --- a/update.php +++ b/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";