mirror of
				https://github.com/avecms/AVE.cms.git
				synced 2025-10-30 13:26:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			163 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| 	// Проверка
 | |
| 	if (! defined('BASE_DIR'))
 | |
| 		exit('Access denied');
 | |
| 
 | |
| 	/**
 | |
| 	 * This source file is part of the AVE.cms. More information,
 | |
| 	 * documentation and tutorials can be found at http://www.ave-cms.ru
 | |
| 	 *
 | |
| 	 * @package      AVE.cms
 | |
| 	 * @file         system/helpers/errors.php
 | |
| 	 * @author       @
 | |
| 	 * @copyright    2007-2016 (c) AVE.cms
 | |
| 	 * @link         http://www.ave-cms.ru
 | |
| 	 * @version      4.0
 | |
| 	 * @since        $date$
 | |
| 	 * @license      license GPL v.2 http://www.ave-cms.ru/license.txt
 | |
| 	*/
 | |
| 
 | |
| 	class Errors
 | |
| 	{
 | |
| 		/**
 | |
| 		 * Errors constructor.
 | |
| 		 */
 | |
| 		public function __construct ()
 | |
| 		{
 | |
| 			set_error_handler([$this, 'scriptError']);
 | |
| 			register_shutdown_function([$this, 'shutDown']);
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		 * @param $errno
 | |
| 		 * @param $errstr
 | |
| 		 * @param $errfile
 | |
| 		 * @param $errline
 | |
| 		 */
 | |
| 		public function scriptError ($errno, $errstr, $errfile, $errline)
 | |
| 		{
 | |
| 			switch($errno)
 | |
| 			{
 | |
| 				case E_ERROR:
 | |
| 					$errseverity = 'Error';
 | |
| 					$color = '#f05050';
 | |
| 					break;
 | |
| 
 | |
| 				case E_WARNING:
 | |
| 					$errseverity = 'Warning';
 | |
| 					$color = '#fad733';
 | |
| 					break;
 | |
| 
 | |
| 				case E_NOTICE:
 | |
| 					$errseverity = 'Notice';
 | |
| 					$color = '#23b7e5';
 | |
| 					break;
 | |
| 
 | |
| 				case E_CORE_ERROR:
 | |
| 					$errseverity = 'Core Error';
 | |
| 					$color = '#f05050';
 | |
| 					break;
 | |
| 
 | |
| 				case E_CORE_WARNING:
 | |
| 					$errseverity = 'Core Warning';
 | |
| 					$color = '#fad733';
 | |
| 					break;
 | |
| 
 | |
| 				case E_COMPILE_ERROR:
 | |
| 					$errseverity = 'Compile Error';
 | |
| 					$color = '#f05050';
 | |
| 					break;
 | |
| 
 | |
| 				case E_COMPILE_WARNING:
 | |
| 					$errseverity = 'Compile Warning';
 | |
| 					$color = '#fad733';
 | |
| 					break;
 | |
| 
 | |
| 				case E_USER_ERROR:
 | |
| 					$errseverity = 'User Error';
 | |
| 					$color = '#f05050';
 | |
| 					break;
 | |
| 
 | |
| 				case E_USER_WARNING:
 | |
| 					$errseverity = 'User Warning';
 | |
| 					$color = '#fad733';
 | |
| 					break;
 | |
| 
 | |
| 				case E_USER_NOTICE:
 | |
| 					$errseverity = 'User Notice';
 | |
| 					$color = '#23b7e5';
 | |
| 					break;
 | |
| 
 | |
| 				case E_STRICT:
 | |
| 					$errseverity = 'Strict Standards';
 | |
| 					$color = '#edf1f2';
 | |
| 					break;
 | |
| 
 | |
| 				case E_PARSE:
 | |
| 					$errseverity = 'Parse Error';
 | |
| 					$color = '#f05050';
 | |
| 					break;
 | |
| 
 | |
| 				case E_RECOVERABLE_ERROR:
 | |
| 					$errseverity = 'Recoverable Error';
 | |
| 					$color = '#f05050';
 | |
| 					break;
 | |
| 
 | |
| 				case E_DEPRECATED:
 | |
| 					$errseverity = 'Deprecated';
 | |
| 					$color = '#fad733';
 | |
| 					break;
 | |
| 
 | |
| 				case E_USER_DEPRECATED:
 | |
| 					$errseverity = 'User Deprecated';
 | |
| 					$color = '#fad733';
 | |
| 					break;
 | |
| 
 | |
| 				default:
 | |
| 					$errseverity = 'Error';
 | |
| 					$color = '#fad733';
 | |
| 					break;
 | |
| 			}
 | |
| 
 | |
| 			$out  = '<div style="border: 1px solid ' . $color . '; margin: 10px; font-size: 11px; font-family: Consolas, Verdana, Arial; border-radius: 5px; box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);">';
 | |
| 			$out .= '<div style="background: ' . $color . '; color: #000; margin: 0; padding: 6px;">';
 | |
| 			$out .= '<strong>' . $errseverity . '</strong> Line <strong>' . $errline . '</strong>: ' . $errfile;
 | |
| 			$out .= '</div>';
 | |
| 			$out .= '<div style="background: #f0f0f0; color: #000; margin: 0; padding: 6px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);">';
 | |
| 			$out .= '['.$errno.'] '. $errstr;
 | |
| 			$out .= '</div>';
 | |
| 			$out .= '</div>';
 | |
| 
 | |
| 			echo $out;
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		 *
 | |
| 		 */
 | |
| 		public function shutDown ()
 | |
| 		{
 | |
| 			if ($error = error_get_last())
 | |
| 			{
 | |
| 				if (! headers_sent())
 | |
| 					header('HTTP/1.1 500 Internal Server Error');
 | |
| 
 | |
| 				switch($error['type'])
 | |
| 				{
 | |
| 					case E_ERROR:
 | |
| 					case E_PARSE:
 | |
| 					case E_STRICT:
 | |
| 					case E_CORE_ERROR:
 | |
| 					case E_CORE_WARNING:
 | |
| 					case E_COMPILE_ERROR:
 | |
| 					case E_COMPILE_WARNING:
 | |
| 					case E_USER_ERROR:
 | |
| 					case E_RECOVERABLE_ERROR:
 | |
| 						$this->scriptError($error['type'], $error['message'], $error['file'], $error['line']);
 | |
| 						break;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	} |