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

📄 install.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/** * @version		$Id: install.php 10381 2008-06-01 03:35:53Z pasamio $ * @package		Joomla * @subpackage	Menus * @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' );jimport( 'joomla.installer.installer' );jimport('joomla.installer.helper');/** * Extension Manager Install Model * * @package		Joomla * @subpackage	Installer * @since		1.5 */class InstallerModelInstall extends JModel{	/** @var object JTable object */	var $_table = null;	/** @var object JTable object */	var $_url = null;	/**	 * Overridden constructor	 * @access	protected	 */	function __construct()	{		parent::__construct();	}	function install()	{		global $mainframe;		$this->setState('action', 'install');		switch(JRequest::getWord('installtype'))		{			case 'folder':				$package = $this->_getPackageFromFolder();				break;			case 'upload':				$package = $this->_getPackageFromUpload();				break;			case 'url':				$package = $this->_getPackageFromUrl();				break;			default:				$this->setState('message', 'No Install Type Found');				return false;				break;		}		// Was the package unpacked?		if (!$package) {			$this->setState('message', 'Unable to find install package');			return false;		}		// Get a database connector		//$db = & JFactory::getDBO();		// Get an installer instance		$installer =& JInstaller::getInstance();		// Install the package		if (!$installer->install($package['dir'])) {			// There was an error installing the package			$msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Error'));			$result = false;		} else {			// Package installed sucessfully			$msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Success'));			$result = true;		}		// Set some model state values		$mainframe->enqueueMessage($msg);		$this->setState('name', $installer->get('name'));		$this->setState('result', $result);		$this->setState('message', $installer->message);		$this->setState('extension.message', $installer->get('extension.message'));		// Cleanup the install files		if (!is_file($package['packagefile'])) {			$config =& JFactory::getConfig();			$package['packagefile'] = $config->getValue('config.tmp_path').DS.$package['packagefile'];		}		JInstallerHelper::cleanupInstall($package['packagefile'], $package['extractdir']);		return $result;	}	/**	 * @param string The class name for the installer	 */	function _getPackageFromUpload()	{		// Get the uploaded file information		$userfile = JRequest::getVar('install_package', null, 'files', 'array' );		// Make sure that file uploads are enabled in php		if (!(bool) ini_get('file_uploads')) {			JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLFILE'));			return false;		}		// Make sure that zlib is loaded so that the package can be unpacked		if (!extension_loaded('zlib')) {			JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLZLIB'));			return false;		}		// If there is no uploaded file, we have a problem...		if (!is_array($userfile) ) {			JError::raiseWarning('SOME_ERROR_CODE', JText::_('No file selected'));			return false;		}		// Check if there was a problem uploading the file.		if ( $userfile['error'] || $userfile['size'] < 1 )		{			JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLUPLOADERROR'));			return false;		}		// Build the appropriate paths		$config =& JFactory::getConfig();		$tmp_dest 	= $config->getValue('config.tmp_path').DS.$userfile['name'];		$tmp_src	= $userfile['tmp_name'];		// Move uploaded file		jimport('joomla.filesystem.file');		$uploaded = JFile::upload($tmp_src, $tmp_dest);		// Unpack the downloaded package file		$package = JInstallerHelper::unpack($tmp_dest);		return $package;	}	/**	 * Install an extension from a directory	 *	 * @static	 * @return boolean True on success	 * @since 1.0	 */	function _getPackageFromFolder()	{		// Get the path to the package to install		$p_dir = JRequest::getString('install_directory');		$p_dir = JPath::clean( $p_dir );		// Did you give us a valid directory?		if (!is_dir($p_dir)) {			JError::raiseWarning('SOME_ERROR_CODE', JText::_('Please enter a package directory'));			return false;		}		// Detect the package type		$type = JInstallerHelper::detectType($p_dir);		// Did you give us a valid package?		if (!$type) {			JError::raiseWarning('SOME_ERROR_CODE', JText::_('Path does not have a valid package'));			return false;		}		$package['packagefile'] = null;		$package['extractdir'] = null;		$package['dir'] = $p_dir;		$package['type'] = $type;		return $package;	}	/**	 * Install an extension from a URL	 *	 * @static	 * @return boolean True on success	 * @since 1.5	 */	function _getPackageFromUrl()	{		// Get a database connector		$db = & JFactory::getDBO();		// Get the URL of the package to install		$url = JRequest::getString('install_url');		// Did you give us a URL?		if (!$url) {			JError::raiseWarning('SOME_ERROR_CODE', JText::_('Please enter a URL'));			return false;		}		// Download the package at the URL given		$p_file = JInstallerHelper::downloadPackage($url);		// Was the package downloaded?		if (!$p_file) {			JError::raiseWarning('SOME_ERROR_CODE', JText::_('Invalid URL'));			return false;		}		$config =& JFactory::getConfig();		$tmp_dest 	= $config->getValue('config.tmp_path');		// Unpack the downloaded package file		$package = JInstallerHelper::unpack($tmp_dest.DS.$p_file);		return $package;	}}

⌨️ 快捷键说明

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