%PDF- %PDF-
Direktori : /home1/lightco1/www/lightingrepublic.com.au/administrator/components/com_extman/ |
Current File : //home1/lightco1/www/lightingrepublic.com.au/administrator/components/com_extman/installer.php |
<?php /** * @package EXTman * @copyright Copyright (C) 2011 - 2013 Timble CVBA. (http://www.timble.net) * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> * @link http://www.joomlatools.com */ defined('_JEXEC') or die; jimport('joomla.installer.installer'); class ComExtmanInstaller extends JInstaller { protected $_error = ''; public function getError() { return $this->_error; } public function abort($msg=null, $type=null) { $this->_error = $msg; return parent::abort(null, $type); } public function getType() { $manifest = self::getVersion() === '1.5' ? $this->_manifest->document : $this->manifest; return self::getElementAttribute($manifest, 'type'); } public static function getComponentDetails($manifest) { if (self::getVersion() === '1.5') { $name = $manifest->document->getElementByPath('name')->data(); } else { $name = $manifest->name; } $name = strtolower(JFilterInput::getInstance()->clean((string)$name, 'cmd')); $element = substr($name, 0, 4) == 'com_' ? $name : 'com_'.$name; return array( 'type' => 'component', 'element' => $element, 'folder' => '' ); } public static function getPluginDetails($manifest) { if (self::getVersion() === '1.5') { $manifest = $manifest->document; } $group = self::getElementAttribute($manifest, 'group'); $files = self::getElementChildren($manifest, 'files'); $element = null; if ($files) { foreach ($files as $file) { $plugin = self::getElementAttribute($file, 'plugin'); if ($plugin) { $element = $plugin; break; } } } return array( 'type' => 'plugin', 'folder' => $group, 'element' => $element, 'client_id' => 0 ); } public static function getModuleDetails($manifest) { if (self::getVersion() === '1.5') { $manifest = $manifest->document; } $group = self::getElementAttribute($manifest, 'group'); $files = self::getElementChildren($manifest, 'files'); $element = null; if ($files) { foreach ($files as $file) { $module = self::getElementAttribute($file, 'module'); if ($module) { $element = $module; break; } } } $client_id = self::getElementAttribute($file, 'client') === 'site' ? 0 : 1; return array( 'type' => 'module', 'folder' => '', 'element' => $element, 'client_id' => $client_id ); } public static function getDetails($type, $manifest) { $method = 'get'.ucfirst($type).'Details'; return call_user_func(array(__CLASS__, $method), $manifest); } public static function getElementAttribute($el, $attr) { if (self::getVersion() === '1.5') { $value = (string)$el->attributes($attr); } else { $value = (string)$el->attributes()->$attr; } return $value; } public static function getElementChildren($el, $path) { if (self::getVersion() === '1.5') { $value = $el->getElementByPath($path)->children(); } else { $value = $el->$path->children(); } return $value; } public static function getVersion() { return version_compare(JVERSION, '1.6', '<') ? '1.5' : '2.5'; } public static function getExtensionId(array $extension) { $type = (string)$extension['type']; $element = (string)$extension['element']; $folder = isset($extension['folder']) ? (string)$extension['folder'] : ''; $cid = isset($extension['client_id']) ? (int) $extension['client_id'] : 0; if ($type == 'component') { $cid = 1; } if ($type == 'component' && substr($element, 0, 4) !== 'com_') { $element = 'com_'.$element; } elseif ($type == 'module' && substr($element, 0, 4) !== 'mod_') { $element = 'mod_'.$element; } if (self::getVersion() === '2.5') { $query = "SELECT extension_id FROM #__extensions WHERE type = '$type' AND element = '$element' AND folder = '$folder' AND client_id = '$cid' LIMIT 1 "; } else { $query = "SELECT id FROM #__{$type}s"; if ($type == 'component') { $query .= " WHERE `option` = '{$element}'"; } else if ($type == 'module') { $query .= " WHERE module = '{$element}' AND client_id = '{$cid}'"; } else if ($type == 'plugin') { $query .= " WHERE element = '{$element}' AND folder = '{$folder}'"; } $query .= "LIMIT 1"; } $db = JFactory::getDBO(); $db->setQuery($query); return $db->loadResult(); } }