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*/// ------------------------------------------------------------------------/*** Exceptions Class** @package CodeIgniter* @subpackage Libraries* @category Exceptions* @author ExpressionEngine Dev Team* @link http://codeigniter.com/user_guide/libraries/exceptions.html*/class CI_Exceptions {var $action;var $severity;var $message;var $filename;var $line;var $ob_level;var $levels = array(E_ERROR => 'Error',E_WARNING => 'Warning',E_PARSE => 'Parsing Error',E_NOTICE => 'Notice',E_CORE_ERROR => 'Core Error',E_CORE_WARNING => 'Core Warning',E_COMPILE_ERROR => 'Compile Error',E_COMPILE_WARNING => 'Compile Warning',E_USER_ERROR => 'User Error',E_USER_WARNING => 'User Warning',E_USER_NOTICE => 'User Notice',E_STRICT => 'Runtime Notice');/*** Constructor**/function CI_Exceptions(){$this->ob_level = ob_get_level();// Note: Do not log messages from this constructor.}// --------------------------------------------------------------------/*** Exception Logger** This function logs PHP generated error messages** @access private* @param string the error severity* @param string the error string* @param string the error filepath* @param string the error line number* @return string*/function log_exception($severity, $message, $filepath, $line){$severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];log_message('error', 'Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line, TRUE);}// --------------------------------------------------------------------/*** 404 Page Not Found Handler** @access private* @param string* @return string*/function show_404($page = ''){$heading = "404 Page Not Found";$message = "The page you requested was not found.";log_message('error', '404 Page Not Found --> '.$page);echo $this->show_error($heading, $message, 'error_404');exit;}// --------------------------------------------------------------------/*** General Error Page** This function takes an error message as input* (either as a string or an array) and displays* it using the specified template.** @access private* @param string the heading* @param string the message* @param string the template name* @return string*/function show_error($heading, $message, $template = 'error_general'){$message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';if (ob_get_level() > $this->ob_level + 1){ob_end_flush();}ob_start();include(APPPATH.'errors/'.$template.EXT);$buffer = ob_get_contents();ob_end_clean();return $buffer;}// --------------------------------------------------------------------/*** Native PHP error handler** @access private* @param string the error severity* @param string the error string* @param string the error filepath* @param string the error line number* @return string*/function show_php_error($severity, $message, $filepath, $line){$severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];$filepath = str_replace("\\", "/", $filepath);// For safety reasons we do not show the full file pathif (FALSE !== strpos($filepath, '/')){$x = explode('/', $filepath);$filepath = $x[count($x)-2].'/'.end($x);}if (ob_get_level() > $this->ob_level + 1){ob_end_flush();}ob_start();include(APPPATH.'errors/error_php'.EXT);$buffer = ob_get_contents();ob_end_clean();echo $buffer;}}// END Exceptions Class/* End of file Exceptions.php *//* Location: ./system/libraries/Exceptions.php */