diff --git a/inc/plugin.php b/inc/plugin.php index 153e894075d50dc9aa6a71fc879ce1ceff0b1896..649fc1f267a32cbc788ccbc82f7f65931213f0e2 100644 --- a/inc/plugin.php +++ b/inc/plugin.php @@ -189,7 +189,7 @@ class DokuWiki_Plugin { * * @return object helper plugin object */ - function loadHelper($name, $msg){ + function loadHelper($name, $msg = true){ if (!plugin_isdisabled($name)){ $obj = plugin_load('helper',$name); }else{ diff --git a/lib/plugins/syntax.php b/lib/plugins/syntax.php index 552cc747ad72efbc13649bc2a8f78932fbe961cb..b7839b2b2bcb86bb8fe285c709faf8615158072a 100644 --- a/lib/plugins/syntax.php +++ b/lib/plugins/syntax.php @@ -226,56 +226,76 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode { $this->localised = true; } - // configuration methods - /** - * getConf($setting) - * - * use this function to access plugin configuration variables - */ - function getConf($setting){ - - if (!$this->configloaded){ $this->loadConfig(); } - - return $this->conf[$setting]; - } - - /** - * loadConfig() - * merges the plugin's default settings with any local settings - * this function is automatically called through getConf() - */ - function loadConfig(){ - global $conf; - - $defaults = $this->readDefaultSettings(); - $plugin = $this->getPluginName(); - - foreach ($defaults as $key => $value) { - if (isset($conf['plugin'][$plugin][$key])) continue; - $conf['plugin'][$plugin][$key] = $value; + // configuration methods + /** + * getConf($setting) + * + * use this function to access plugin configuration variables + */ + function getConf($setting) { + + if(!$this->configloaded) { $this->loadConfig(); } + + return $this->conf[$setting]; + } + + /** + * loadConfig() + * merges the plugin's default settings with any local settings + * this function is automatically called through getConf() + */ + function loadConfig() { + global $conf; + + $defaults = $this->readDefaultSettings(); + $plugin = $this->getPluginName(); + + foreach($defaults as $key => $value) { + if(isset($conf['plugin'][$plugin][$key])) continue; + $conf['plugin'][$plugin][$key] = $value; + } + + $this->configloaded = true; + $this->conf =& $conf['plugin'][$plugin]; } - $this->configloaded = true; - $this->conf =& $conf['plugin'][$plugin]; - } + /** + * read the plugin's default configuration settings from conf/default.php + * this function is automatically called through getConf() + * + * @return array setting => value + */ + function readDefaultSettings() { - /** - * read the plugin's default configuration settings from conf/default.php - * this function is automatically called through getConf() - * - * @return array setting => value - */ - function readDefaultSettings() { + $path = DOKU_PLUGIN.$this->getPluginName().'/conf/'; + $conf = array(); - $path = DOKU_PLUGIN.$this->getPluginName().'/conf/'; - $conf = array(); + if(@file_exists($path.'default.php')) { + include($path.'default.php'); + } - if (@file_exists($path.'default.php')) { - include($path.'default.php'); + return $conf; } - return $conf; - } + /** + * Loads a given helper plugin (if enabled) + * + * @author Esther Brunner <wikidesign@gmail.com> + * + * @param string $name name of plugin to load + * @param bool $msg if a message should be displayed in case the plugin is not available + * + * @return object helper plugin object + */ + function loadHelper($name, $msg = true) { + if(!plugin_isdisabled($name)) { + $obj = plugin_load('helper', $name); + } else { + $obj = null; + } + if(is_null($obj) && $msg) msg("Helper plugin $name is not available or invalid.", -1); + return $obj; + } /** * Allow the plugin to prevent DokuWiki from reusing an instance