diff --git a/plugins/00-PicoDeprecated.php b/plugins/00-PicoDeprecated.php index d39b229..edf05ea 100644 --- a/plugins/00-PicoDeprecated.php +++ b/plugins/00-PicoDeprecated.php @@ -84,19 +84,34 @@ class PicoDeprecated extends AbstractPicoPlugin } /** - * Triggers the deprecated event config_loaded($config), tries to read - * {@path "config.php"} in Picos root dir, enables the plugins - * {@link PicoParsePagesContent} and {@link PicoExcerpt} and defines some - * deprecated constants (ROOT_DIR, CONTENT_DIR etc.) + * Triggers the deprecated event config_loaded($config) * + * @see PicoDeprecated::defineConstants() + * @see PicoDeprecated::loadRootDirConfig() + * @see PicoDeprecated::enablePlugins() * @see DummyPlugin::onConfigLoaded() */ public function onConfigLoaded(&$config) { - // CONTENT_DIR constant is deprecated since v0.9, - // ROOT_DIR, LIB_DIR, PLUGINS_DIR, THEMES_DIR and CONTENT_EXT constants since v1.0, - // CONFIG_DIR constant existed just for a short time between v0.9 and v1.0, - // CACHE_DIR constant was dropped with v1.0 without a replacement + $this->defineConstants(); + $this->loadRootDirConfig($config); + $this->enablePlugins(); + + $this->triggerEvent('config_loaded', array(&$config)); + } + + /** + * Defines deprecated constants + * + * CONTENT_DIR is deprecated since v0.9, ROOT_DIR, LIB_DIR, PLUGINS_DIR, + * THEMES_DIR and CONTENT_EXT since v1.0, CONFIG_DIR existed just for a + * short time between v0.9 and v1.0 and CACHE_DIR was dropped with v1.0 + * without a replacement. + * + * @return void + */ + protected function defineConstants() + { if (!defined('ROOT_DIR')) { define('ROOT_DIR', $this->getRootDir()); } @@ -114,12 +129,21 @@ class PicoDeprecated extends AbstractPicoPlugin define('THEMES_DIR', $this->getThemesDir()); } if (!defined('CONTENT_DIR')) { - define('CONTENT_DIR', $config['content_dir']); + define('CONTENT_DIR', $this->getConfig('content_dir')); } if (!defined('CONTENT_EXT')) { - define('CONTENT_EXT', $config['content_ext']); + define('CONTENT_EXT', $this->getConfig('content_ext')); } + } + /** + * Read {@path "config.php"} in Picos root dir + * + * @param array &$config array of config variables + * @return void + */ + protected function loadRootDirConfig(&$config) + { if (file_exists($this->getRootDir() . 'config.php')) { // config.php in Pico::$rootDir is deprecated; use Pico::$configDir instead $newConfig = require($this->getRootDir() . 'config.php'); @@ -127,7 +151,15 @@ class PicoDeprecated extends AbstractPicoPlugin $config = $newConfig + $config; } } + } + /** + * Enables the plugins {@link PicoParsePagesContent} and {@link PicoExcerpt} + * + * @return void + */ + protected function enablePlugins() + { // enable PicoParsePagesContent and PicoExcerpt // we can't enable them during onPluginsLoaded because we can't know // if the user disabled us (PicoDeprecated) manually in the config @@ -145,8 +177,6 @@ class PicoDeprecated extends AbstractPicoPlugin $plugins['PicoExcerpt']->setEnabled(true, true, true); } } - - $this->triggerEvent('config_loaded', array(&$config)); } /**