From 581a3a06093a9ce76eb7054110befb26d070f091 Mon Sep 17 00:00:00 2001 From: Daniel Rudolf Date: Wed, 11 Sep 2019 12:05:56 +0200 Subject: [PATCH] Add AbstractPicoPlugin::configEnabled() --- lib/AbstractPicoPlugin.php | 46 ++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/lib/AbstractPicoPlugin.php b/lib/AbstractPicoPlugin.php index 73ca4ba..3346778 100644 --- a/lib/AbstractPicoPlugin.php +++ b/lib/AbstractPicoPlugin.php @@ -93,25 +93,7 @@ abstract class AbstractPicoPlugin implements PicoPluginInterface { // plugins can be enabled/disabled using the config if ($eventName === 'onConfigLoaded') { - $pluginEnabled = $this->getConfig(get_called_class() . '.enabled'); - if ($pluginEnabled !== null) { - $this->setEnabled($pluginEnabled); - } else { - $pluginEnabled = $this->getPluginConfig('enabled'); - if ($pluginEnabled !== null) { - $this->setEnabled($pluginEnabled); - } elseif ($this->enabled) { - $this->setEnabled($this->enabled, true, true); - } elseif ($this->enabled === null) { - // make sure dependencies are already fulfilled, - // otherwise the plugin needs to be enabled manually - try { - $this->setEnabled(true, false, true); - } catch (RuntimeException $e) { - $this->enabled = false; - } - } - } + $this->configEnabled(); } if ($this->isEnabled() || ($eventName === 'onPluginsLoaded')) { @@ -121,6 +103,32 @@ abstract class AbstractPicoPlugin implements PicoPluginInterface } } + /** + * Enables or disables this plugin depending on Pico's config + */ + protected function configEnabled() + { + $pluginEnabled = $this->getPico()->getConfig(get_called_class() . '.enabled'); + if ($pluginEnabled !== null) { + $this->setEnabled($pluginEnabled); + } else { + $pluginEnabled = $this->getPluginConfig('enabled'); + if ($pluginEnabled !== null) { + $this->setEnabled($pluginEnabled); + } elseif ($this->enabled) { + $this->setEnabled(true, true, true); + } elseif ($this->enabled === null) { + // make sure dependencies are already fulfilled, + // otherwise the plugin needs to be enabled manually + try { + $this->setEnabled(true, false, true); + } catch (RuntimeException $e) { + $this->enabled = false; + } + } + } + } + /** * {@inheritDoc} */