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

📄 menu.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/** * @version		$Id: menu.php 11299 2008-11-22 01:40:44Z ian $ * @package		Joomla.Framework * @subpackage	Application * @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();/** * JMenu class * * @package		Joomla.Framework * @subpackage	Application * @since		1.5 */class JMenu extends JObject{	/**	 * Array to hold the menu items	 *	 * @access private	 * @param array	 */	var $_items = array ();	/**	 * Identifier of the default menu item	 *	 * @access private	 * @param integer	 */	var $_default = 0;	/**	 * Identifier of the active menu item	 *	 * @access private	 * @param integer	 */	var $_active = 0;	/**	 * Class constructor	 *	 * @access public	 * @return boolean True on success	 */	function __construct($options = array())	{		$this->load(); //load the menu items		foreach ($this->_items as $k => $item)		{			if ($item->home) {				$this->_default = $item->id;			}		}	}	/**	 * Returns a reference to a JMenu object	 *	 * This method must be invoked as:	 * 		<pre>  $menu = &JSite::getMenu();</pre>	 *	 * @access	public	 * @param   string  $client  The name of the client	 * @param array     $options An associative array of options	 * @return JMenu 	A menu object.	 * @since	1.5	 */	function &getInstance($client, $options = array())	{		static $instances;		if (!isset( $instances )) {			$instances = array();		}		if (empty($instances[$client]))		{			//Load the router object			$info =& JApplicationHelper::getClientInfo($client, true);			$path = $info->path.DS.'includes'.DS.'menu.php';			if(file_exists($path))			{				require_once $path;				// Create a JPathway object				$classname = 'JMenu'.ucfirst($client);				$instance = new $classname($options);			}			else			{				//$error = JError::raiseError( 500, 'Unable to load menu: '.$client);				$error = null; //Jinx : need to fix this				return $error;			}			$instances[$client] = & $instance;		}		return $instances[$client];	}	/**	 * Get menu item by id	 *	 * @access public	 * @param int The item id	 * @return mixed The item object, or null if not found	 */	function &getItem($id)	{		$result = null;		if (isset($this->_items[$id])) {			$result = &$this->_items[$id];		}		return $result;	}	/**	 * Set the default item by id	 *	 * @param int The item id	 * @access public	 * @return True, if succesfull	 */	function setDefault($id)	{		if(isset($this->_items[$id])) {			$this->_default = $id;			return true;		}		return false;	}	/**	 * Get menu item by id	 *	 * @access public	 *	 * @return object The item object	 */	function &getDefault()	{		$item =& $this->_items[$this->_default];		return $item;	}	/**	 * Set the default item by id	 *	 * @param int The item id	 * @access public	 * @return If successfull the active item, otherwise null	 */	function &setActive($id)	{		if(isset($this->_items[$id]))		{			$this->_active = $id;			$result = &$this->_items[$id];			return $result;		}		$result = null;		return $result;	}	/**	 * Get menu item by id	 *	 * @access public	 *	 * @return object The item object	 */	function &getActive()	{		if ($this->_active) {			$item =& $this->_items[$this->_active];			return $item;		}		$result = null;		return $result;	}	/**	 * Gets menu items by attribute	 *	 * @access public	 * @param string 	The field name	 * @param string 	The value of the field	 * @param boolean 	If true, only returns the first item found	 * @return array	 */	function getItems($attribute, $value, $firstonly = false)	{		$items = null;		foreach ($this->_items as  $item)		{			if ( ! is_object($item) )				continue;			if ($item->$attribute == $value)			{				if($firstonly) {					return $item;				}				$items[] = $item;			}		}		return $items;	}	/**	 * Gets the parameter object for a certain menu item	 *	 * @access public	 * @param int The item id	 * @return object A JParameter object	 */	function &getParams($id)	{		$ini = '';		if ($menu =& $this->getItem($id)) {			$ini = $menu->params;		}		$result = new JParameter( $ini );		return $result;	}	/**	 * Getter for the menu array	 *	 * @access public	 * @return array	 */	function getMenu() {		return $this->_items;	}	/**	 * Method to check JMenu object authorization against an access control	 * object and optionally an access extension object	 *	 * @access 	public	 * @param	integer	$id			The menu id	 * @param	integer	$accessid	The users access identifier	 * @return	boolean	True if authorized	 */	function authorize($id, $accessid = 0)	{		$menu =& $this->getItem($id);		return ((isset($menu->access) ? $menu->access : 0) <= $accessid);	}	/**	 * Loads the menu items	 *	 * @abstract	 * @access public	 * @return array	 */	function load()	{		return array();	}}

⌨️ 快捷键说明

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