diff options
author | Chris Smith <chris.eureka@jalakai.co.uk> | 2009-01-18 19:12:04 +0100 |
---|---|---|
committer | Chris Smith <chris.eureka@jalakai.co.uk> | 2009-01-18 19:12:04 +0100 |
commit | cb043f52e80e5b287f70b0f93e8dc81744fd9d50 (patch) | |
tree | 585bb4f0c57cd9ef21b26ec33811de7cbd4b64fb /inc/init.php | |
parent | 1cf7edcb7fe86b27057d5c66685b6437a0508b03 (diff) | |
download | rpg-cb043f52e80e5b287f70b0f93e8dc81744fd9d50.tar.gz rpg-cb043f52e80e5b287f70b0f93e8dc81744fd9d50.tar.bz2 |
Rework configuration loading to use a predefined file list or cascade
This change add the global $config_cascade which holds the list of files to be
read for each configuration setting group. Dokuwiki adds in its configuration
file values after preload.php, giving preload.php to set its own configuration
cascade.
One side effect of the change is "local.protected.php" is part of the default
cascade, removing the need for it to be included at the bottom of local.php.
darcs-hash:20090118181204-f07c6-fea1c406da1bbdb0a52ab40914f11b835e797728.gz
Diffstat (limited to 'inc/init.php')
-rw-r--r-- | inc/init.php | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/inc/init.php b/inc/init.php index 9c4baa988..9ef905d52 100644 --- a/inc/init.php +++ b/inc/init.php @@ -40,14 +40,55 @@ global $cache_authname; $cache_authname = array(); global $cache_metadata; $cache_metadata = array(); + //set the configuration cascade - but only if its not already been set in preload.php + global $config_cascade; + if (empty($config_cascade)) { + $config_cascade = array( + 'main' => array( + 'default' => array(DOKU_CONF.'dokuwiki.php'), + 'local' => array(DOKU_CONF.'local.php'), + 'protected' => array(DOKU_CONF.'local.protected.php'), + ), + 'acronyms' => array( + 'default' => array(DOKU_CONF.'acronyms.php'), + 'local' => array(DOKU_CONF.'acronyms.local.php'), + ), + 'entities' => array( + 'default' => array(DOKU_CONF.'entities.php'), + 'local' => array(DOKU_CONF.'entities.local.php'), + ), + 'interwiki' => array( + 'default' => array(DOKU_CONF.'interwiki.php'), + 'local' => array(DOKU_CONF.'interwiki.local.php'), + ), + 'mime' => array( + 'default' => array(DOKU_CONF.'mime.php'), + 'local' => array(DOKU_CONF.'mime.local.php'), + ), + 'scheme' => array( + 'default' => array(DOKU_CONF.'scheme.php'), + 'local' => array(DOKU_CONF.'scheme.local.php'), + ), + 'smileys' => array( + 'default' => array(DOKU_CONF.'smileys.php'), + 'local' => array(DOKU_CONF.'smileys.local.php'), + ), + 'wordblock' => array( + 'default' => array(DOKU_CONF.'wordblock.php'), + 'local' => array(DOKU_CONF.'wordblock.local.php'), + ), + ); + } + //prepare config array() global $conf; $conf = array(); - // load the config file(s) - require_once(DOKU_CONF.'dokuwiki.php'); - if(@file_exists(DOKU_CONF.'local.php')){ - require_once(DOKU_CONF.'local.php'); + // load the global config file(s) + foreach ($config_cascade['main'] as $config_group) { + foreach ($config_group as $config_file) { + @include($config_file); + } } //prepare language array |