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

📄 page.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/*** @version		$Id: page.php 10707 2008-08-21 09:52:47Z eddieajau $* @package		Joomla.Framework* @subpackage	Cache* @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();/** * Joomla! Cache page type object * * @package		Joomla.Framework * @subpackage	Cache * @since		1.5 */class JCachePage extends JCache{	/**	 * Get the cached page data	 *	 * @access	public	 * @param	string	$id		The cache data id	 * @param	string	$group	The cache data group	 * @return	boolean	True if the cache is hit (false else)	 * @since	1.5	 */	function get( $id=false, $group='page' )	{		// Initialize variables		$data = false;		// If an id is not given generate it from the request		if ($id == false) {			$id = $this->_makeId();		}		// If the etag matches the page id ... sent a no change header and exit : utilize browser cache		if ( !headers_sent() && isset($_SERVER['HTTP_IF_NONE_MATCH']) ){			$etag = stripslashes($_SERVER['HTTP_IF_NONE_MATCH']);			if( $etag == $id) {				$browserCache = isset($this->_options['browsercache']) ? $this->_options['browsercache'] : false;				if ($browserCache) {					$this->_noChange();				}			}		}		// We got a cache hit... set the etag header and echo the page data		$data = parent::get($id, $group);		if ($data !== false) {			$this->_setEtag($id);			return $data;		}		// Set id and group placeholders		$this->_id		= $id;		$this->_group	= $group;		return false;	}	/**	 * Stop the cache buffer and store the cached data	 *	 * @access	public	 * @return	boolean	True if cache stored	 * @since	1.5	 */	function store()	{		// Get page data from JResponse body		$data = JResponse::getBody();		// Get id and group and reset them placeholders		$id		= $this->_id;		$group	= $this->_group;		$this->_id		= null;		$this->_group	= null;		// Only attempt to store if page data exists		if ($data) {			return parent::store($data, $id, $group);		}		return false;	}	/**	 * Generate a page cache id	 * @todo	Discuss whether this should be coupled to a data hash or a request hash ... perhaps hashed with a serialized request	 *	 * @access	private	 * @return	string	MD5 Hash : page cache id	 * @since	1.5	 */	function _makeId()	{		return md5(JRequest::getURI());	}	/**	 * There is no change in page data so send a not modified header and die gracefully	 *	 * @access	private	 * @return	void	 * @since	1.5	 */	function _noChange()	{		global $mainframe;		// Send not modified header and exit gracefully		header( 'HTTP/1.x 304 Not Modified', true );		$mainframe->close();	}	/**	 * Set the ETag header in the response	 *	 * @access	private	 * @return	void	 * @since	1.5	 */	function _setEtag($etag)	{		JResponse::setHeader( 'ETag', $etag, true );	}}

⌨️ 快捷键说明

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