⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 error.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/*** @version		$Id: error.php 10707 2008-08-21 09:52:47Z eddieajau $* @package		Joomla.Framework* @subpackage	Document* @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.* @license		GNU/GPL, see LICENSE.php* Joomla! is free software. This version may have been modified pursuant* to the GNU General Public License, and as distributed it includes or* is derivative of works licensed under the GNU General Public License or* other free or open source software licenses.* See COPYRIGHT.php for copyright notices and details.*/// Check to ensure this file is within the rest of the frameworkdefined('JPATH_BASE') or die();/** * DocumentError class, provides an easy interface to parse and display an error page * * @package		Joomla.Framework * @subpackage	Document * @since		1.5 */class JDocumentError extends JDocument{	/**	 * Error Object	 * @var	object	 */	var $_error;	/**	 * Class constructor	 *	 * @access protected	 * @param	string	$type 		(either html or tex)	 * @param	array	$attributes Associative array of attributes	 */	function __construct($options = array())	{		parent::__construct($options);		//set mime type		$this->_mime = 'text/html';		//set document type		$this->_type = 'error';	}	/**	 * Set error object	 *	 * @access	public	 * @param	object	$error	Error object to set	 * @return	boolean	True on success	 * @since	1.5	 */	function setError($error)	{		if (JError::isError($error)) {			$this->_error = & $error;			return true;		} else {			return false;		}	}	/**	 * Render the document	 *	 * @access public	 * @param boolean 	$cache		If true, cache the output	 * @param array		$params		Associative array of attributes	 */	function render( $cache = false, $params = array())	{		// If no error object is set return null		if (!isset($this->_error)) {			return;		}		//Set the status header		JResponse::setHeader('status', $this->_error->code.' '.str_replace( "\n", ' ', $this->_error->message ));		$file = 'error.php';		// check template		$directory	= isset($params['directory']) ? $params['directory'] : 'templates';		$template	= isset($params['template']) ? JFilterInput::clean($params['template'], 'cmd') : 'system';		if ( !file_exists( $directory.DS.$template.DS.$file) ) {			$template = 'system';		}		//set variables		$this->baseurl  = JURI::base(true);		$this->template = $template;		$this->debug	= isset($params['debug']) ? $params['debug'] : false;		$this->error	= $this->_error;		// load		$data = $this->_loadTemplate($directory.DS.$template, $file);		parent::render();		return $data;	}	/**	 * Load a template file	 *	 * @param string 	$template	The name of the template	 * @param string 	$filename	The actual filename	 * @return string The contents of the template	 */	function _loadTemplate($directory, $filename)	{		$contents = '';		//Check to see if we have a valid template file		if ( file_exists( $directory.DS.$filename ) )		{			//store the file path			$this->_file = $directory.DS.$filename;			//get the file content			ob_start();			require_once $directory.DS.$filename;			$contents = ob_get_contents();			ob_end_clean();		}		return $contents;	}	function renderBacktrace()	{		$contents	= null;		$backtrace	= $this->_error->getTrace();		if( is_array( $backtrace ) )		{			ob_start();			$j	=	1;			echo  	'<table border="0" cellpadding="0" cellspacing="0" class="Table">';			echo  	'	<tr>';			echo  	'		<td colspan="3" align="left" class="TD"><strong>Call stack</strong></td>';			echo  	'	</tr>';			echo  	'	<tr>';			echo  	'		<td class="TD"><strong>#</strong></td>';			echo  	'		<td class="TD"><strong>Function</strong></td>';			echo  	'		<td class="TD"><strong>Location</strong></td>';			echo  	'	</tr>';			for( $i = count( $backtrace )-1; $i >= 0 ; $i-- )			{				echo  	'	<tr>';				echo  	'		<td class="TD">'.$j.'</td>';				if( isset( $backtrace[$i]['class'] ) ) {					echo  	'	<td class="TD">'.$backtrace[$i]['class'].$backtrace[$i]['type'].$backtrace[$i]['function'].'()</td>';				} else {					echo  	'	<td class="TD">'.$backtrace[$i]['function'].'()</td>';				}				if( isset( $backtrace[$i]['file'] ) ) {					echo  	'		<td class="TD">'.$backtrace[$i]['file'].':'.$backtrace[$i]['line'].'</td>';				} else {					echo  	'		<td class="TD">&nbsp;</td>';				}				echo  	'	</tr>';				$j++;			}			echo  	'</table>';			$contents = ob_get_contents();			ob_end_clean();		}		return $contents;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -