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

📄 helper.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/*** @version		$Id: helper.php 10381 2008-06-01 03:35:53Z pasamio $* @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();/** * Component helper class * * @static * @package		Joomla.Framework * @subpackage	Application * @since		1.5 */class JComponentHelper{	/**	 * Get the component info	 *	 * @access	public	 * @param	string $name 	The component name	 * @param 	boolean	$string	If set and a component does not exist, the enabled attribue will be set to false	 * @return	object A JComponent object	 */	function &getComponent( $name, $strict = false )	{		$result = null;		$components = JComponentHelper::_load();		if (isset( $components[$name] ))		{			$result = &$components[$name];		}		else		{			$result				= new stdClass();			$result->enabled	= $strict ? false : true;			$result->params		= null;		}		return $result;	}	/**	 * Checks if the component is enabled	 *	 * @access	public	 * @param	string	$component The component name	 * @param 	boolean	$string	If set and a component does not exist, false will be returned	 * @return	boolean	 */	function isEnabled( $component, $strict = false )	{		global $mainframe;		$result = &JComponentHelper::getComponent( $component, $strict );		return ($result->enabled | $mainframe->isAdmin());	}	/**	 * Gets the parameter object for the component	 *	 * @access public	 * @param string $name The component name	 * @return object A JParameter object	 */	function &getParams( $name )	{		static $instances;		if (!isset( $instances[$name] ))		{			$component = &JComponentHelper::getComponent( $name );			$instances[$name] = new JParameter($component->params);		}		return $instances[$name];	}	function renderComponent($name = null, $params = array())	{		global $mainframe, $option;		if(empty($name)) {			// Throw 404 if no component			JError::raiseError(404, JText::_("Component Not Found"));			return;		}		$scope = $mainframe->scope; //record the scope		$mainframe->scope = $name;  //set scope to component name		// Build the component path		$name = preg_replace('/[^A-Z0-9_\.-]/i', '', $name);		$file = substr( $name, 4 );		// Define component path		define( 'JPATH_COMPONENT',					JPATH_BASE.DS.'components'.DS.$name);		define( 'JPATH_COMPONENT_SITE',				JPATH_SITE.DS.'components'.DS.$name);		define( 'JPATH_COMPONENT_ADMINISTRATOR',	JPATH_ADMINISTRATOR.DS.'components'.DS.$name);		// get component path		if ( $mainframe->isAdmin() && file_exists(JPATH_COMPONENT.DS.'admin.'.$file.'.php') ) {			$path = JPATH_COMPONENT.DS.'admin.'.$file.'.php';		} else {			$path = JPATH_COMPONENT.DS.$file.'.php';		}		// If component disabled throw error		if (!JComponentHelper::isEnabled( $name ) || !file_exists($path)) {			JError::raiseError( 404, JText::_( 'Component Not Found' ) );		}		// Handle legacy globals if enabled		if ($mainframe->getCfg('legacy'))		{			// Include legacy globals			global $my, $database, $id, $acl, $task;			// For backwards compatibility extract the config vars as globals			$registry =& JFactory::getConfig();			foreach (get_object_vars($registry->toObject()) as $k => $v)			{				$varname = 'mosConfig_'.$k;				$$varname = $v;			}			$contentConfig = &JComponentHelper::getParams( 'com_content' );			foreach (get_object_vars($contentConfig->toObject()) as $k => $v)			{				$varname = 'mosConfig_'.$k;				$$varname = $v;			}			$usersConfig = &JComponentHelper::getParams( 'com_users' );			foreach (get_object_vars($usersConfig->toObject()) as $k => $v)			{				$varname = 'mosConfig_'.$k;				$$varname = $v;			}		}		$task = JRequest::getString( 'task' );		// Load common language files		$lang =& JFactory::getLanguage();		$lang->load($name);		// Handle template preview outlining		$contents = null;		// Execute the component		ob_start();		require_once $path;		$contents = ob_get_contents();		ob_end_clean();		// Build the component toolbar		jimport( 'joomla.application.helper' );		if (($path = JApplicationHelper::getPath( 'toolbar' )) && $mainframe->isAdmin()) {			// Get the task again, in case it has changed			$task = JRequest::getString( 'task' );			// Make the toolbar			include_once( $path );		}		$mainframe->scope = $scope; //revert the scope		return $contents;	}	/**	 * Load components	 *	 * @access	private	 * @return	array	 */	function _load()	{		static $components;		if (isset($components)) {			return $components;		}		$db = &JFactory::getDBO();		$query = 'SELECT *' .				' FROM #__components' .				' WHERE parent = 0';		$db->setQuery( $query );		if (!($components = $db->loadObjectList( 'option' ))) {			JError::raiseWarning( 'SOME_ERROR_CODE', "Error loading Components: " . $db->getErrorMsg());			return false;		}		return $components;	}}

⌨️ 快捷键说明

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