1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
\r
5 * An open source application development framework for PHP 4.3.2 or newer
\r
7 * @package CodeIgniter
\r
8 * @author ExpressionEngine Dev Team
\r
9 * @copyright Copyright (c) 2008, EllisLab, Inc.
\r
10 * @license http://codeigniter.com/user_guide/license.html
\r
11 * @link http://codeigniter.com
\r
12 * @since Version 1.0
\r
16 // ------------------------------------------------------------------------
\r
19 * CodeIgniter Config Class
\r
21 * This class contains functions that enable config files to be managed
\r
23 * @package CodeIgniter
\r
24 * @subpackage Libraries
\r
25 * @category Libraries
\r
26 * @author ExpressionEngine Dev Team
\r
27 * @link http://codeigniter.com/user_guide/libraries/config.html
\r
31 var $config = array();
\r
32 var $is_loaded = array();
\r
37 * Sets the $config data from the primary config.php file as a class variable
\r
40 * @param string the config file name
\r
41 * @param boolean if configuration values should be loaded into their own section
\r
42 * @param boolean true if errors should just return false, false if an error message should be displayed
\r
43 * @return boolean if the file was successfully loaded or not
\r
45 function CI_Config()
\r
47 $this->config =& get_config();
\r
48 log_message('debug', "Config Class Initialized");
\r
51 // --------------------------------------------------------------------
\r
57 * @param string the config file name
\r
58 * @return boolean if the file was loaded correctly
\r
60 function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE)
\r
62 $file = ($file == '') ? 'config' : str_replace(EXT, '', $file);
\r
64 if (in_array($file, $this->is_loaded, TRUE))
\r
69 if ( ! file_exists(APPPATH.'config/'.$file.EXT))
\r
71 if ($fail_gracefully === TRUE)
\r
75 show_error('The configuration file '.$file.EXT.' does not exist.');
\r
78 include(APPPATH.'config/'.$file.EXT);
\r
80 if ( ! isset($config) OR ! is_array($config))
\r
82 if ($fail_gracefully === TRUE)
\r
86 show_error('Your '.$file.EXT.' file does not appear to contain a valid configuration array.');
\r
89 if ($use_sections === TRUE)
\r
91 if (isset($this->config[$file]))
\r
93 $this->config[$file] = array_merge($this->config[$file], $config);
\r
97 $this->config[$file] = $config;
\r
102 $this->config = array_merge($this->config, $config);
\r
105 $this->is_loaded[] = $file;
\r
108 log_message('debug', 'Config file loaded: config/'.$file.EXT);
\r
112 // --------------------------------------------------------------------
\r
115 * Fetch a config file item
\r
119 * @param string the config item name
\r
120 * @param string the index name
\r
124 function item($item, $index = '')
\r
128 if ( ! isset($this->config[$item]))
\r
133 $pref = $this->config[$item];
\r
137 if ( ! isset($this->config[$index]))
\r
142 if ( ! isset($this->config[$index][$item]))
\r
147 $pref = $this->config[$index][$item];
\r
153 // --------------------------------------------------------------------
\r
156 * Fetch a config file item - adds slash after item
\r
158 * The second parameter allows a slash to be added to the end of
\r
159 * the item, in the case of a path.
\r
162 * @param string the config item name
\r
166 function slash_item($item)
\r
168 if ( ! isset($this->config[$item]))
\r
173 $pref = $this->config[$item];
\r
175 if ($pref != '' && substr($pref, -1) != '/')
\r
183 // --------------------------------------------------------------------
\r
189 * @param string the URI string
\r
192 function site_url($uri = '')
\r
194 if (is_array($uri))
\r
196 $uri = implode('/', $uri);
\r
201 return $this->slash_item('base_url').$this->item('index_page');
\r
205 $suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix');
\r
206 return $this->slash_item('base_url').$this->slash_item('index_page').preg_replace("|^/*(.+?)/*$|", "\\1", $uri).$suffix;
\r
210 // --------------------------------------------------------------------
\r
218 function system_url()
\r
220 $x = explode("/", preg_replace("|/*(.+?)/*$|", "\\1", BASEPATH));
\r
221 return $this->slash_item('base_url').end($x).'/';
\r
224 // --------------------------------------------------------------------
\r
227 * Set a config file item
\r
230 * @param string the config item key
\r
231 * @param string the config item value
\r
234 function set_item($item, $value)
\r
236 $this->config[$item] = $value;
\r
241 // END CI_Config class
\r
243 /* End of file Config.php */
\r
244 /* Location: ./system/libraries/Config.php */