Файловый менеджер - Редактировать - /var/www/iplanru/data/old/www/i-plan.ru/administrator/components/com_jce/installer/adapters/language.php
Назад
<?php /** * @version $Id: language.php 97 2009-06-21 19:18:07Z happynoodleboy $ * @package JCE * @copyright Copyright (C) 2009 Ryan Demmer. All rights reserved. * @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved. * @license GNU/GPL * 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. */ // Check to ensure this file is within the rest of the framework defined('JPATH_BASE') or die (); /** * Language installer * * @package JCE * @subpackage Installer * @since 1.5 */ class JCEInstallerLanguage extends JObject { /** * Constructor * * @access protected * @param object $parent Parent object [JInstaller instance] * @return void * @since 1.5 */ function __construct( & $parent) { $this->parent = & $parent; } /** * Custom install method * * @access public * @return boolean True on success * @since 1.5 */ function install() { // Get database connector object $manifest = & $this->parent->getManifest(); $this->manifest = & $manifest->document; // Get the language name // Set the extensions name $name = & $this->manifest->getElementByPath('name'); $name = JFilterInput::clean($name->data(), 'cmd'); $this->set('name', $name); // Get the Language tag [ISO tag, eg. en-GB] $tag = & $this->manifest->getElementByPath('tag'); // Check if we found the tag - if we didn't, we may be trying to install from an older language package if (!$tag) { $this->parent->abort(JText::_('Language').' '.JText::_('Install').': '.JText::_('NO LANGUAGE TAG?')); return false; } $this->set('tag', $tag->data()); $folder = $tag->data(); $sitePath = JPATH_SITE.DS."language".DS.$folder; $adminPath = JPATH_ADMINISTRATOR.DS."language".DS.$folder; $tinyPath = JPATH_PLUGINS.DS."editors".DS."jce".DS."tiny_mce"; // Set the installation target paths $this->parent->setPath('extension_site', $sitePath); $this->parent->setPath('extension_administrator', $adminPath); $this->adminElement = & $this->manifest->getElementByPath('administration'); $this->siteElement = & $this->manifest->getElementByPath('site'); $this->tinyElement = & $this->manifest->getElementByPath('tinymce'); // Set overwrite flag if not set by Manifest if (!$this->parent->getOverwrite()) { $this->parent->setOverwrite(true); } // Copy site files foreach ($this->siteElement->children() as $child) { if (is_a($child, 'JSimpleXMLElement') && $child->name() == 'files') { if ($this->parent->parseFiles($child) === false) { // Install failed, rollback any changes $this->parent->abort(); return false; } } } // Copy admin files foreach ($this->adminElement->children() as $child) { if (is_a($child, 'JSimpleXMLElement') && $child->name() == 'files') { if ($this->parent->parseFiles($child, 1) === false) { // Install failed, rollback any changes $this->parent->abort(); return false; } } } // Copy tinymce files $this->parent->setPath('extension_site', $tinyPath); foreach ($this->tinyElement->children() as $child) { if (is_a($child, 'JSimpleXMLElement') && $child->name() == 'files') { if ($this->parent->parseFiles($child) === false) { // Install failed, rollback any changes $this->parent->abort(); return false; } } } // Set path back to site for manifest $this->parent->setPath('extension_site', $sitePath); // Lastly, we will copy the manifest file to its appropriate place. if (!$this->parent->copyManifest(0)) { // Install failed, rollback changes $this->parent->abort(JText::_('Component').' '.JText::_('Install').': '.JText::_('Could not copy setup file')); return false; } // Get the language description $description = & $this->manifest->getElementByPath('description'); if (is_a($description, 'JSimpleXMLElement')) { $this->parent->set('message', $description->data()); } else { $this->parent->set('message', ''); } return true; } /** * Custom uninstall method * * @access public * @param string $tag The tag of the language to uninstall * @param int $clientId The id of the client (unused) * @return mixed Return value for uninstall method in component uninstall file * @since 1.5 */ function uninstall($tag, $clientId) { $path = trim($tag); if (!JFolder::exists($path)) { JError::raiseWarning(100, 'Language Uninstall: '.JText::_('Language path is empty, cannot uninstall files')); return false; } $tag = basename($path); // Because JCE languages don't have their own folders we cannot use the standard method of finding an installation manifest $manifestFile = JPATH_ROOT.DS.'language'.DS.$tag.DS.$tag.'.com_jce.xml'; if (file_exists($manifestFile)) { $xml = & JFactory::getXMLParser('Simple'); // If we cannot load the xml file return null if (!$xml->loadFile($manifestFile)) { JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Could not load manifest file')); return false; } /* * Check for a valid XML root tag. */ $root = & $xml->document; if ($root->name() != 'install' && $root->attributes('type') != 'language') { JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Invalid manifest file')); return false; } // Get the admin and site paths for the component $sitePath = JPATH_SITE.DS."language".DS.$tag; $adminPath = JPATH_ADMINISTRATOR.DS."language".DS.$tag; $tinyPath = JPATH_PLUGINS.DS."editors".DS."jce".DS."tiny_mce"; // Set the installation target paths $this->parent->setPath('extension_site', $sitePath); $this->parent->setPath('extension_administrator', $adminPath); if (!$this->parent->removeFiles($root->getElementByPath('site/files'))) { JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Unable to delete files')); return false; } if (!$this->parent->removeFiles($root->getElementByPath('administration/files'), 1)) { JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Unable to delete files')); return false; } $this->parent->setPath('extension_site', $tinyPath); if (!$this->parent->removeFiles($root->getElementByPath('tinymce/files'))) { JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Unable to delete files')); return false; } JFile::delete($manifestFile); } else { JError::raiseWarning(100, 'Language Uninstall: Manifest File invalid or not found'); return false; } return true; } }
| ver. 1.4 |
Github
|
.
| PHP 5.4.45-1~dotdeb+6.1 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка