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

📄 application.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/*** @version		$Id: application.php 11409 2009-01-10 02:27:08Z willebil $* @package		Joomla* @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.*/// no direct accessdefined( '_JEXEC' ) or die( 'Restricted access' );jimport('joomla.application.component.helper');/*** Joomla! Application class** Provide many supporting API functions** @package		Joomla* @final*/class JAdministrator extends JApplication{	/**	* Class constructor	*	* @access protected	* @param	array An optional associative array of configuration settings.	* Recognized key values include 'clientId' (this list is not meant to be comprehensive).	*/	function __construct($config = array())	{		$config['clientId'] = 1;		parent::__construct($config);		//Set the root in the URI based on the application name		JURI::root(null, str_replace('/'.$this->getName(), '', JURI::base(true)));	}	/**	* Initialise the application.	*	* @access public	* @param array An optional associative array of configuration settings.	*/	function initialise($options = array())	{		// if a language was specified it has priority		// otherwise use user or default language settings		if (empty($options['language']))		{			$user = & JFactory::getUser();			$lang	= $user->getParam( 'admin_language' );			// Make sure that the user's language exists			if ( $lang && JLanguage::exists($lang) ) {				$options['language'] = $lang;			} else {				$params = JComponentHelper::getParams('com_languages');				$client	=& JApplicationHelper::getClientInfo($this->getClientId());				$options['language'] = $params->get($client->name, 'en-GB');			}		}		// One last check to make sure we have something		if ( ! JLanguage::exists($options['language']) ) {			$options['language'] = 'en-GB';		}		parent::initialise($options);	}	/**	* Route the application	*	* @access public	*/	function route()	{		$uri = JURI::getInstance();		if($this->getCfg('force_ssl') >= 1 && strtolower($uri->getScheme()) != 'https') {			//forward to https			$uri->setScheme('https');			$this->redirect($uri->toString());		}	}	/**	 * Return a reference to the JRouter object.	 *	 * @access	public	 * @return	JRouter.	 * @since	1.5	 */	function &getRouter()	{		$router =& parent::getRouter('administrator');		return $router;	}	/**	* Dispatch the application	*	* @access public	*/	function dispatch($component)	{		$document	=& JFactory::getDocument();		$user		=& JFactory::getUser();		switch($document->getType())		{			case 'html' :			{				$document->setMetaData( 'keywords', $this->getCfg('MetaKeys') );				if ( $user->get('id') ) {					$document->addScript( JURI::root(true).'/includes/js/joomla.javascript.js');				}				JHTML::_('behavior.mootools');			} break;			default : break;		}		$document->setTitle( htmlspecialchars_decode($this->getCfg('sitename' )). ' - ' .JText::_( 'Administration' ));		$document->setDescription( $this->getCfg('MetaDesc') );		$contents = JComponentHelper::renderComponent($component);		$document->setBuffer($contents, 'component');	}	/**	* Display the application.	*	* @access public	*/	function render()	{		$component	= JRequest::getCmd('option');		$template	= $this->getTemplate();		$file 		= JRequest::getCmd('tmpl', 'index');		if($component == 'com_login') {			$file = 'login';		}		$params = array(			'template' 	=> $template,			'file'		=> $file.'.php',			'directory'	=> JPATH_THEMES		);		$document =& JFactory::getDocument();		$data = $document->render($this->getCfg('caching'), $params );		JResponse::setBody($data);	}	/**	* Login authentication function	*	* @param	array 	Array( 'username' => string, 'password' => string )	* @param	array 	Array( 'remember' => boolean )	* @access public	* @see JApplication::login	*/	function login($credentials, $options = array())	{		//The minimum group		$options['group'] = 'Public Backend';		 //Make sure users are not autoregistered		$options['autoregister'] = false;		//Set the application login entry point		if(!array_key_exists('entry_url', $options)) {			$options['entry_url'] = JURI::base().'index.php?option=com_user&task=login';		}		$result = parent::login($credentials, $options);		if(!JError::isError($result))		{			$lang = JRequest::getCmd('lang');			$lang = preg_replace( '/[^A-Z-]/i', '', $lang );			$this->setUserState( 'application.lang', $lang  );			JAdministrator::purgeMessages();		}		return $result;	}	/**	 * Get the template	 *	 * @return string The template name	 * @since 1.0	 */	function getTemplate()	{		static $template;		if (!isset($template))		{			// Load the template name from the database			$db =& JFactory::getDBO();			$query = 'SELECT template'				. ' FROM #__templates_menu'				. ' WHERE client_id = 1'				. ' AND menuid = 0'				;			$db->setQuery( $query );			$template = $db->loadResult();			$template = JFilterInput::clean($template, 'cmd');			if (!file_exists(JPATH_THEMES.DS.$template.DS.'index.php')) {				$template = 'khepri';			}		}		return $template;	}	/**	* Purge the jos_messages table of old messages	*	* static method	* @since 1.5	*/	function purgeMessages()	{		$db		=& JFactory::getDBO();		$user	=& JFactory::getUser();		$userid = $user->get('id');		$query = 'SELECT *'		. ' FROM #__messages_cfg'		. ' WHERE user_id = ' . (int) $userid		. ' AND cfg_name = "auto_purge"'		;		$db->setQuery( $query );		$config = $db->loadObject( );		// check if auto_purge value set		if (is_object( $config ) and $config->cfg_name == 'auto_purge' )		{			$purge 	= $config->cfg_value;		}		else		{			// if no value set, default is 7 days			$purge 	= 7;		}		// calculation of past date		// if purge value is not 0, then allow purging of old messages		if ($purge > 0)		{			// purge old messages at day set in message configuration			$past =& JFactory::getDate(time() - $purge * 86400);			$pastStamp = $past->toMySQL();			$query = 'DELETE FROM #__messages'			. ' WHERE date_time < ' . $db->Quote( $pastStamp )			. ' AND user_id_to = ' . (int) $userid			;			$db->setQuery( $query );			$db->query();		}	}   /**	* Deprecated, use JURI::root() instead.	*	* @since 1.5	* @deprecated As of version 1.5	* @see JURI::root()	*/	function getSiteURL()	{	   return JURI::root();	}}

⌨️ 快捷键说明

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