From cb043f52e80e5b287f70b0f93e8dc81744fd9d50 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Sun, 18 Jan 2009 19:12:04 +0100 Subject: 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 --- inc/init.php | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) (limited to 'inc/init.php') 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 -- cgit v1.2.3