summaryrefslogtreecommitdiff
path: root/lib/plugins/syntax.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins/syntax.php')
-rw-r--r--lib/plugins/syntax.php85
1 files changed, 48 insertions, 37 deletions
diff --git a/lib/plugins/syntax.php b/lib/plugins/syntax.php
index e5e6204c4..256bf7519 100644
--- a/lib/plugins/syntax.php
+++ b/lib/plugins/syntax.php
@@ -21,6 +21,7 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode {
var $localised = false; // set to true by setupLocale() after loading language dependent strings
var $lang = array(); // array to hold language dependent strings, best accessed via ->getLang()
var $configloaded = false; // set to true by loadConfig() after loading plugin configuration variables
+ var $conf = array(); // array to hold plugin settings, best accessed via ->getConf()
/**
* General Info
@@ -211,46 +212,56 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode {
$this->localised = true;
}
- // configuration methods
- /**
- * getConf($id)
- *
- * use this function to access plugin configuration variables
- */
- function getConf($id){
- global $conf;
-
- $plugin = $this->getPluginName();
-
- if (!$this->configloaded){
- if ($pconf = $this->loadConfig() !== false){
- foreach ($pconf as $key => $value){
- if (isset($conf['plugin'][$plugin][$key])) continue;
- $conf['plugin'][$plugin][$key] = $value;
- }
- $this->configloaded = 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];
+ }
- return $conf['plugin'][$plugin][$id];
+ /**
+ * 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;
}
-
- /**
- * loadConfig()
- * reads all plugin configuration variables into $this->conf
- * this function is automatically called by getConf()
- */
- function loadConfig(){
- $path = DOKU_PLUGIN.$this->getPluginName().'/conf/';
- $conf = array();
-
- if (!@file_exists($path.'default.php')) return false;
-
- // load default config file
+
+ $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() {
+
+ $path = DOKU_PLUGIN.$this->getPluginName().'/conf/';
+ $conf = array();
+
+ if (@file_exists($path.'default.php')) {
include($path.'default.php');
-
- return $conf;
}
-
+
+ return $conf;
+ }
+
}
//Setup VIM: ex: et ts=4 enc=utf-8 :