Ejemplo n.º 1
0
 function getComponentManifestFile($com)
 {
     $short_element = str_replace('com_', '', $com);
     $manifestPath = JPATH_ADMINISTRATOR . '/components/' . $com . '/' . 'manifest.xml';
     $shortElementManifestPath = JPATH_ADMINISTRATOR . '/components/' . $com . '/' . $short_element . '.xml';
     if (JFile::exists($manifestPath)) {
         $file = $manifestPath;
     }
     if (JFile::exists($shortElementManifestPath)) {
         $file = $shortElementManifestPath;
     }
     if (empty($file)) {
         return false;
     }
     $installer = new JInstaller();
     if (version_compare(JVERSION, '1.6.0', 'ge')) {
         // Joomla! 1.6+ code here
         $manifest = $installer->isManifest($file);
     } else {
         // Joomla! 1.5 code here
         $manifest = $installer->_isManifest($file);
     }
     return $manifest;
 }
Ejemplo n.º 2
0
 /**
  * Attempts to uninstall the specified extension
  * 
  * @param array $pkg the paket package information
  * @return Boolean True if successful, false otherwise
  */
 function uninstallExtension($package)
 {
     //Get an installer instance, always get a new one
     $installer = new JInstaller();
     //attemp to load the manifest file
     $file = $this->findManifest($package);
     //check to see if the manifest was found
     if (isset($file)) {
         // Is it a valid joomla installation manifest file?
         $manifest = $installer->_isManifest($file);
         if (!is_null($manifest)) {
             // If the root method attribute is set to upgrade, allow file overwrite
             $root = $manifest->document;
             if ($root->attributes('method') == 'upgrade') {
                 $installer->_overwrite = true;
             }
             // Set the manifest object and path
             $installer->_manifest = $manifest;
             $installer->setPath('manifest', $file);
             // Set the installation source path to that of the manifest file
             $installer->setPath('source', dirname($file));
         }
     } else {
         $this->setError(JText::_('COM_TIENDA_UNABLE_TO_LOCATE_MANIFEST_FILE'));
         return false;
     }
     //check if the extension is installed already and if so uninstall it
     //$manifestInformation = $this->paketItemToManifest($package);
     $manifestInformation = $package;
     $elementID = $this->checkIfInstalledAlready($manifestInformation);
     if (!empty($elementID)) {
         $clientid = 0;
         if ($package['client'] == 'administrator') {
             $clientid = '1';
         }
         //uninstall the extension using the joomla uninstaller
         if ($installer->uninstall($manifestInformation["type"], $elementID, $clientid)) {
             $this->setError(JText::_('COM_TIENDA_ELEMENT_UNINSTALLED'));
             return true;
         } else {
             $this->setError(JText::_('COM_TIENDA_ELEMENT_UNINSTALL_FAILED') . " :: " . $installer->getError());
             return false;
         }
     }
     $this->setError(JText::_('COM_TIENDA_ELEMENT_NOT_UNINSTALLED'));
     return false;
 }