D7net Mini Sh3LL v1
Current File : /var/www/html/../html/informatica/administrator/components/com_jce/views/../adapters/language.php |
<?php
/**
* @package JCE
* @copyright Copyright (c) 2009-2016 Ryan Demmer. All rights reserved.
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* JCE 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.
*/
defined('JPATH_BASE') or die('RESTRICTED');
/**
* Language installer
*
* @package JCE
* @subpackage Installer
* @since 1.5
*/
class WFInstallerLanguage extends JObject {
/**
* Constructor
*
* @param object $parent Parent object [JInstaller instance]
* @return void
*/
function __construct(& $parent) {
$this->parent = $parent;
}
private function setManifest($manifest = null) {
$values = array('name', 'version', 'description', 'tag');
foreach($values as $value) {
$this->parent->set($value, WFXMLHelper::getElement($manifest, $value));
}
$elements = array('administration', 'site', 'tinymce');
foreach($elements as $element) {
$this->set($element, WFXMLHelper::getElements($manifest, $element));
}
}
/**
* Install method
*
* @access public
* @return boolean True on success
*/
public function install() {
$manifest = $this->parent->getManifest();
// Get the extension manifest object
$this->setManifest($manifest);
// Check language tag - if we didn't, we may be trying to install from an older language package
if (!$this->parent->get('tag')) {
$this->parent->abort(WFText::_('WF_INSTALLER_LANGUAGE_INSTALL') . ' : ' . WFText::_('WF_INSTALLER_LANGUAGE_NO_TAG'));
return false;
}
$folder = $this->parent->get('tag');
// Set the installation target paths
$this->parent->setPath('extension_site', JPATH_SITE . '/language/' . $folder);
$this->parent->setPath('extension_administrator', JPATH_ADMINISTRATOR . '/language/' . $folder);
// Set overwrite flag if not set by Manifest
$this->parent->setOverwrite(true);
// Copy admin files
if ($this->parent->parseFiles($this->get('administration'), 1) === false) {
$this->parent->abort();
return false;
}
// Copy site files
if ($this->parent->parseFiles($this->get('site')) === false) {
$this->parent->abort();
return false;
}
// Copy tinymce files
$this->parent->setPath('extension_site', JPATH_COMPONENT_SITE . '/editor/tiny_mce');
if ($this->parent->parseFiles($this->get('tinymce')) === false) {
$this->parent->abort();
return false;
}
$this->addIndexfiles($this->parent->getPath('site'));
// Set path back to site for manifest
$this->parent->setPath('extension_site', JPATH_SITE . '/language/' . $folder);
// Lastly, we will copy the manifest file to its appropriate place.
if (!$this->parent->copyManifest(0)) {
// Install failed, rollback changes
$this->parent->abort(WFText::_('WF_INSTALLER_LANGUAGE_INSTALL') . ' : ' . WFText::_('WF_INSTALLER_SETUP_COPY_ERROR'));
return false;
}
return true;
}
/**
* Add index.html files to each folder
* @access private
*/
private function addIndexfiles($path) {
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');
// get the base file
$file = WF_ADMINISTRATOR . '/index.html';
if (is_file($file) && is_dir($path)) {
JFile::copy($file, $path . '/' . basename($file));
// admin component
$folders = JFolder::folders($path, '.', true, true);
foreach ($folders as $folder) {
JFile::copy($file, $folder . '/' . basename($file));
}
}
}
/**
* Uninstall method
*
* @access public
* @param string $tag The tag of the language to uninstall
* @return mixed Return value for uninstall method in component uninstall file
*/
function uninstall($tag) {
// Set defaults
$this->parent->set('name', $tag);
$this->parent->set('version', '');
// Clean tag
$tag = trim($tag);
$path = JPATH_SITE . '/language/' . $tag;
if (!JFolder::exists($path)) {
JError::raiseWarning(100, WFText::_('WF_INSTALLER_LANGUAGE_UNINSTALL') . ' : ' . WFText::_('WF_INSTALLER_LANGUAGE_PATH_EMPTY'));
return false;
}
// Because JCE languages don't have their own folders we cannot use the standard method of finding an installation manifest
$manifest = $path . '/' . $tag . '.com_jce.xml';
if (file_exists($manifest)) {
$xml = WFXMLHelper::getXML($manifest);
if (!$xml) {
JError::raiseWarning(100, WFText::_('WF_INSTALLER_LANGUAGE_UNINSTALL') . ' : ' . WFText::_('WF_INSTALLER_MANIFEST_INVALID'));
}
$this->setManifest($xml);
// Set the installation target paths
$this->parent->setPath('extension_site', $path);
$this->parent->setPath('extension_administrator', JPATH_ADMINISTRATOR . "/language/" . $tag);
if (!$this->parent->removeFiles($this->get('site'))) {
JError::raiseWarning(100, WFText::_('WF_INSTALLER_LANGUAGE_UNINSTALL') . ' : ' . WFText::_('WF_INSTALL_DELETE_FILES_ERROR'));
return false;
}
if (!$this->parent->removeFiles($this->get('administration'), 1)) {
JError::raiseWarning(100, WFText::_('WF_INSTALLER_LANGUAGE_UNINSTALL') . ' : ' . WFText::_('WF_INSTALL_DELETE_FILES_ERROR'));
return false;
}
$this->parent->setPath('extension_site', JPATH_COMPONENT_SITE . '/editor/tiny_mce');
if (!$this->parent->removeFiles($this->get('tinymce'))) {
JError::raiseWarning(100, WFText::_('WF_INSTALLER_LANGUAGE_UNINSTALL') . ' : ' . WFText::_('WF_INSTALL_DELETE_FILES_ERROR'));
return false;
}
JFile::delete($manifest);
} else {
JError::raiseWarning(100, WFText::_('WF_INSTALLER_LANGUAGE_UNINSTALL') . ' : ' . WFText::_('WF_INSTALLER_MANIFEST_ERROR'));
return false;
}
return true;
}
}
AnonSec - 2021 | Recode By D7net