Current Path : /var/www/html/clients/kampol.e-nk.ru/administrator/components/com_jce/ |
Current File : /var/www/html/clients/kampol.e-nk.ru/administrator/components/com_jce/install.php |
<?php /** * @version $Id: install.php 115 2009-06-23 11:31:41Z happynoodleboy $ * @package JCE Admin Component * @copyright Copyright (C) 2006 - 2009 Ryan Demmmer. All rights reserved. * @license GNU/GPL * 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('_JEXEC') or die ('Restricted access'); /** * Installer function * @return */ function com_install() { global $mainframe; $db = & JFactory::getDBO(); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $path = JPATH_ADMINISTRATOR.DS.'components'.DS.'com_jce'; // Remove legacy file if (file_exists($path.DS.'admin.jce.php')) { @JFile::delete($path.DS.'admin.jce.php'); } // Load updater class require_once ($path.DS.'updater.php'); $updater = & JCEUpdater::getInstance(); // Install Plugins data $updater->installPlugins(true); // Install Groups data $updater->installGroups(true); // Install editor plugin jimport('joomla.installer.installer'); $installer = & JInstaller::getInstance(); $source = $installer->getPath('source'); $packages = $source.DS.'packages'; // Get editor and plugin packages $editor = JFolder::files($packages, 'plg_jce_15\d+?\.zip', false, true); $plugins = JFolder::files($packages, 'jce_\w+_15\d+?\.zip', false, true); $language = & JFactory::getLanguage(); $language->load('com_jce', JPATH_ADMINISTRATOR); $img_path = JURI::root().'/administrator/components/com_jce/img/'; $out = '<table class="adminlist" style="width:50%;">'; $out .= '<tr><th class="title" style="width:65%">'.JText::_('Extension').'</th><th class="title" style="width:30%">'.JText::_('Version').'</th><th class="title" style="width:5%"> </th></tr>'; $editor_img = 'delete.png'; $editor_result = JText::_('Error'); $plugin_out = ''; if (! empty($editor)) { if (is_file($editor[0])) { $config = & JFactory::getConfig(); $tmp = $config->getValue('config.tmp_path').DS.uniqid('install_').DS.basename($editor[0], '.zip'); if (!JArchive::extract($editor[0], $tmp)) { $mainframe->enqueueMessage(JText::_('EDITOR EXTRACT ERROR'), 'error'); } else { $query = 'SELECT id, params' .' FROM #__components' .' WHERE link = '.$db->Quote('option=com_jce') ; $db->setQuery($query); $component = $db->loadObject(); $params = explode("\n", $component->params); $installer = & JInstaller::getInstance(); // Store Component values $component_paths = array ( 'source'=>$installer->getPath('source'), 'manifest'=>$installer->getPath('manifest'), 'extension_site'=>$installer->getPath('extension_site'), 'extension_administrator'=>$installer->getPath('extension_administrator') ); $component_vars = array ( 'name'=>$installer->get('name'), 'result'=>$installer->get('result'), 'message'=>$installer->message ); $editor_version = preg_replace('/\D+/', '', basename($editor[0])); // Add JTable include path JTable::addIncludePath(JPATH_LIBRARIES.DS.'joomla'.DS.'database'.DS.'table'); // Editor Plugin installed proceed with plugins if ($installer->install($tmp)) { $manifest = & $installer->getManifest(); $root = & $manifest->document; $name = & $root->getElementByPath('name'); $language->load('plg_editors_jce', JPATH_ADMINISTRATOR); $editor_img = 'tick.png'; $editor_result = JText::_('Success'); $params[] = 'package=1'; // Include installer class if (! empty($plugins)) { require_once ($path.DS.'installer'.DS.'installer.php'); $jce_installer = & JCEInstaller::getInstance(); $plugin_out = '<tr><th class="title" style="width:65%">'.JText::_('Plugin').'</th><th class="title" style="width:30%">'.JText::_('Version').'</th><th class="title" style="width:5%"> </th></tr>'; foreach ($plugins as $plugin) { // Create unique tmp dir name $tmp = $config->getValue('config.tmp_path').DS.uniqid('install_').DS.basename($plugin, '.zip'); // Extract to tmp dir if (JArchive::extract($plugin, $tmp)) { // Install plugin if (!$jce_installer->install($tmp)) { $plugin_img = 'delete.png'; $plugin_result = JText::_('Error'); $plugin_name = basename($plugin); } else { $manifest = & $jce_installer->getManifest(); $root = & $manifest->document; $name = & $root->getElementByPath('name'); $language->load('com_jce_'.trim($root->attributes('plugin'))); $plugin_img = 'tick.png'; $plugin_result = JText::_('Success'); $plugin_name = $name->data(); } $plugin_out .= '<tr><td>'.$plugin_name.'</td><td>'.preg_replace('/\D+/', '', basename($plugin)).'</td><td style="text-align:center;">'.JHTML::image($img_path.$plugin_img, $plugin_result).'</td></tr>'; if ($jce_installer->get('extension.message')) { $plugin_out .= '<tr><td colspan="3">'.JText::_($jce_installer->get('extension.message')).'</td></tr>'; } // Cleanup if (is_dir($tmp)) { @JFolder::delete($tmp); } } } } } else { $editor_img = 'delete.png'; $editor_result = JText::_('Error'); $params[] = 'package=0'; } $editor_message = JText::_($installer->message); // Return Component Paths foreach ($component_paths as $k=>$v) { $installer->setPath($k, $v); } // Return Component Vars foreach ($component_vars as $k=>$v) { $installer->set($k, $v); } if (is_dir($tmp)) { @JFolder::delete($tmp); } $manifest = & $installer->getManifest(); $root = & $manifest->document; $version = & $root->getElementByPath('version'); $out .= '<tr><td>'.JText::_('JCE ADMIN TITLE').'</td><td>'.$version->data().'</td><td class="title" style="text-align:center;">'.JHTML::image($img_path.'tick.png', JText::_('Success')).'</td></tr>'; $out .= '<tr><td colspan="3">'.JText::_($installer->message).'</td></tr>'; $out .= '<tr><td>'.JText::_('JCE EDITOR TITLE').'</td><td>'.$editor_version.'</td><td class="title" style="text-align:center;">'.JHTML::image($img_path.$editor_img, $editor_result).'</td></tr>'; $out .= '<tr><td colspan="3">'.$editor_message.'</td></tr>'; $out .= $plugin_out; $out .= '</table>'; $installer->set('message', JText::_('JCE INSTALL SUMMARY')); $installer->set('extension.message', $out); $row = & JTable::getInstance('component'); $row->load($component->id); $row->params = implode("\n", $params); $row->store(); } } } // Delete packages folder @JFolder::delete($packages); } /** * Uninstall function * @return */ function com_uninstall() { require_once (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_jce'.DS.'updater.php'); $updater = & JCEUpdater::getInstance(); $updater->cleanupDB(); $params = & JComponentHelper::getParams('com_jce'); if ($params->get('package')) { $updater->removeEditor(); } } ?>