Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发

源代码在线查看: extension.php

软件大小: 5657 K
上传用户: fansino
关键词: Joomla Management Content System
下载地址: 免注册下载 普通下载 VIP

相关代码

								/**				 * @version		$Id: extension.php 10381 2008-06-01 03:35:53Z pasamio $				 * @package		Joomla				 * @subpackage	Installer				 * @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 included in Joomla!				defined('_JEXEC') or die( 'Restricted access' );								jimport( 'joomla.application.component.model' );								/**				 * Extension Manager Abstract Extension Model				 *				 * @abstract				 * @package		Joomla				 * @subpackage	Installer				 * @since		1.5				 */				class InstallerModel extends JModel				{					/** @var array Array of installed components */					var $_items = array();									/** @var object JPagination object */					var $_pagination = null;									/**					 * Overridden constructor					 * @access	protected					 */					function __construct()					{						global $mainframe;										// Call the parent constructor						parent::__construct();										// Set state variables from the request						$this->setState('pagination.limit',	$mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'));						$this->setState('pagination.offset',$mainframe->getUserStateFromRequest('com_installer.limitstart.'.$this->_type, 'limitstart', 0, 'int'));						$this->setState('pagination.total',	0);					}									function &getItems()					{						if (empty($this->_items)) {							// Load the items							$this->_loadItems();						}						return $this->_items;					}									function &getPagination()					{						if (empty($this->_pagination)) {							// Make sure items are loaded for a proper total							if (empty($this->_items)) {								// Load the items								$this->_loadItems();							}							// Load the pagination object							jimport('joomla.html.pagination');							$this->_pagination = new JPagination($this->_state->get('pagination.total'), $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit'));						}						return $this->_pagination;					}									/**					 * Remove (uninstall) an extension					 *					 * @static					 * @param	array	An array of identifiers					 * @return	boolean	True on success					 * @since 1.0					 */					function remove($eid=array())					{						global $mainframe;										// Initialize variables						$failed = array ();										/*						 * Ensure eid is an array of extension ids in the form id => client_id						 * TODO: If it isn't an array do we want to set an error and fail?						 */						if (!is_array($eid)) {							$eid = array($eid => 0);						}										// Get a database connector						$db =& JFactory::getDBO();										// Get an installer object for the extension type						jimport('joomla.installer.installer');						$installer = & JInstaller::getInstance();										// Uninstall the chosen extensions						foreach ($eid as $id => $clientId)						{							$id		= trim( $id );							$result	= $installer->uninstall($this->_type, $id, $clientId );											// Build an array of extensions that failed to uninstall							if ($result === false) {								$failed[] = $id;							}						}										if (count($failed)) {							// There was an error in uninstalling the package							$msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Error'));							$result = false;						} else {							// Package uninstalled sucessfully							$msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Success'));							$result = true;						}										$mainframe->enqueueMessage($msg);						$this->setState('action', 'remove');						$this->setState('name', $installer->get('name'));						$this->setState('message', $installer->message);						$this->setState('extension.message', $installer->get('extension.message'));										return $result;					}									function _loadItems()					{						return JError::raiseError( 500, JText::_('Method Not Implemented'));					}				}			

相关资源