Blame | Last modification | View Log | RSS feed
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/*** CodeIgniter** An open source application development framework for PHP 4.3.2 or newer** @package CodeIgniter* @author ExpressionEngine Dev Team* @copyright Copyright (c) 2008, EllisLab, Inc.* @license http://codeigniter.com/user_guide/license.html* @link http://codeigniter.com* @since Version 1.0* @filesource*/// ------------------------------------------------------------------------/*** CodeIgniter Config Class** This class contains functions that enable config files to be managed** @package CodeIgniter* @subpackage Libraries* @category Libraries* @author ExpressionEngine Dev Team* @link http://codeigniter.com/user_guide/libraries/config.html*/class CI_Config {var $config = array();var $is_loaded = array();/*** Constructor** Sets the $config data from the primary config.php file as a class variable** @access public* @param string the config file name* @param boolean if configuration values should be loaded into their own section* @param boolean true if errors should just return false, false if an error message should be displayed* @return boolean if the file was successfully loaded or not*/function CI_Config(){$this->config =& get_config();log_message('debug', "Config Class Initialized");}// --------------------------------------------------------------------/*** Load Config File** @access public* @param string the config file name* @return boolean if the file was loaded correctly*/function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE){$file = ($file == '') ? 'config' : str_replace(EXT, '', $file);if (in_array($file, $this->is_loaded, TRUE)){return TRUE;}if ( ! file_exists(APPPATH.'config/'.$file.EXT)){if ($fail_gracefully === TRUE){return FALSE;}show_error('The configuration file '.$file.EXT.' does not exist.');}include(APPPATH.'config/'.$file.EXT);if ( ! isset($config) OR ! is_array($config)){if ($fail_gracefully === TRUE){return FALSE;}show_error('Your '.$file.EXT.' file does not appear to contain a valid configuration array.');}if ($use_sections === TRUE){if (isset($this->config[$file])){$this->config[$file] = array_merge($this->config[$file], $config);}else{$this->config[$file] = $config;}}else{$this->config = array_merge($this->config, $config);}$this->is_loaded[] = $file;unset($config);log_message('debug', 'Config file loaded: config/'.$file.EXT);return TRUE;}// --------------------------------------------------------------------/*** Fetch a config file item*** @access public* @param string the config item name* @param string the index name* @param bool* @return string*/function item($item, $index = ''){if ($index == ''){if ( ! isset($this->config[$item])){return FALSE;}$pref = $this->config[$item];}else{if ( ! isset($this->config[$index])){return FALSE;}if ( ! isset($this->config[$index][$item])){return FALSE;}$pref = $this->config[$index][$item];}return $pref;}// --------------------------------------------------------------------/*** Fetch a config file item - adds slash after item** The second parameter allows a slash to be added to the end of* the item, in the case of a path.** @access public* @param string the config item name* @param bool* @return string*/function slash_item($item){if ( ! isset($this->config[$item])){return FALSE;}$pref = $this->config[$item];if ($pref != '' && substr($pref, -1) != '/'){$pref .= '/';}return $pref;}// --------------------------------------------------------------------/*** Site URL** @access public* @param string the URI string* @return string*/function site_url($uri = ''){if (is_array($uri)){$uri = implode('/', $uri);}if ($uri == ''){return $this->slash_item('base_url').$this->item('index_page');}else{$suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix');return $this->slash_item('base_url').$this->slash_item('index_page').preg_replace("|^/*(.+?)/*$|", "\\1", $uri).$suffix;}}// --------------------------------------------------------------------/*** System URL** @access public* @return string*/function system_url(){$x = explode("/", preg_replace("|/*(.+?)/*$|", "\\1", BASEPATH));return $this->slash_item('base_url').end($x).'/';}// --------------------------------------------------------------------/*** Set a config file item** @access public* @param string the config item key* @param string the config item value* @return void*/function set_item($item, $value){$this->config[$item] = $value;}}// END CI_Config class/* End of file Config.php *//* Location: ./system/libraries/Config.php */