%PDF- %PDF-
Direktori : /home/lightco1/www/lightcolab.com/plugins/extension/jce/ |
Current File : /home/lightco1/www/lightcolab.com/plugins/extension/jce/jce.php |
<?php /** * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved * @copyright Copyright (C) 2016 Ryan Demmer. All rights reserved * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * JCE extension plugin. * * @since 2.6 */ class PlgExtensionJce extends JPlugin { /** * Check the installer is for a valid plugin group. * * @param JInstaller $installer Installer object * * @return bool * * @since 2.6 */ private function isValid($installer) { if (empty($installer->manifest)) { return false; } foreach (array('type', 'group') as $var) { $$var = (string) $installer->manifest->attributes()->{$var}; } return $type === 'plugin' && $group === 'jce'; } /** * Handle post extension install update sites. * * @param JInstaller $installer Installer object * @param int $eid Extension Identifier * * @since 2.6 */ public function onExtensionAfterInstall($installer, $eid) { if ($eid) { if (!$this->isValid($installer)) { return false; } $basename = basename($installer->getPath('extension_root')); if (strpos($basename, '-') === false) { return false; } require_once JPATH_ADMINISTRATOR.'/components/com_jce/models/plugins.php'; // enable plugin $plugin = JTable::getInstance('extension'); $plugin->load($eid); $plugin->publish(); $parts = explode('-', $basename); $type = $parts[0]; $name = $parts[1]; $plugin = new StdClass(); $plugin->name = $name; if ($type === 'editor') { $plugin->icon = (string) $installer->manifest->icon; $plugin->row = (int) (string) $installer->manifest->attributes()->row; $plugin->type = 'plugin'; } else { $plugin->type = 'extension'; } $plugin->path = $installer->getPath('extension_root'); $model = new WFModelPlugins(); $model->postInstall('install', $plugin, $installer); if ($plugin->type == 'extension') { jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $path = JPATH_SITE.'/components/com_jce/editor/extensions/'.$type; // delete manifest if (is_file($path.'/'.$plugin->name.'.xml')) { JFile::delete($path.'/'.$plugin->name.'.xml'); } // delete file if (is_file($path.'/'.$plugin->name.'.php')) { JFile::delete($path.'/'.$plugin->name.'.php'); } // delete folder if (is_dir($path.'/'.$plugin->name)) { JFolder::delete($path.'/'.$plugin->name); } } } } /** * Handle extension uninstall. * * @param JInstaller $installer Installer instance * @param int $eid Extension id * @param int $result Installation result * * @since 1.6 */ public function onExtensionAfterUninstall($installer, $eid, $result) { if ($eid) { if (!$this->isValid($installer)) { return false; } $basename = basename($installer->getPath('extension_root')); if (strpos($basename, '-') === false) { return false; } require_once JPATH_ADMINISTRATOR.'/components/com_jce/models/plugins.php'; $parts = explode('-', $basename); $type = $parts[0]; $name = $parts[1]; $plugin = new StdClass(); $plugin->name = $name; if ($type === 'editor') { $plugin->icon = (string) $installer->manifest->icon; $plugin->row = (int) (string) $installer->manifest->attributes()->row; $plugin->type = 'plugin'; } $plugin->path = $installer->getPath('extension_root'); $model = new WFModelPlugins(); $model->postInstall('uninstall', $plugin, $installer); } } }