Back to PackageAdapter class

Method removeExtensionFiles

protected void
removeExtensionFiles
()
Removes this extension's files
Returns
  • void
Since
  • 4.0.0
-
  • \RuntimeException

Method removeExtensionFiles - Source code

/**
 * Removes this extension's files
 *
 * @return  void
 *
 * @since   4.0.0
 * @throws  \RuntimeException
 */
protected function removeExtensionFiles()
{
    $manifest = new PackageManifest(JPATH_MANIFESTS . '/packages/' . $this->extension->element . '.xml');
    $error = false;
    foreach ($manifest->filelist as $extension) {
        $tmpInstaller = new Installer();
        $tmpInstaller->setPackageUninstall(true);
        $id = $this->_getExtensionId($extension->type, $extension->id, $extension->client, $extension->group);
        if ($id) {
            if (!$tmpInstaller->uninstall($extension->type, $id)) {
                $error = true;
                Log::add(Text::sprintf('JLIB_INSTALLER_ERROR_PACK_UNINSTALL_NOT_PROPER', basename($extension->filename)), Log::WARNING, 'jerror');
            }
        } else {
            Log::add(Text::_('JLIB_INSTALLER_ERROR_PACK_UNINSTALL_UNKNOWN_EXTENSION'), Log::WARNING, 'jerror');
        }
    }
    // Remove any language files
    $this->parent->removeFiles($this->getManifest()->languages);
    // Clean up manifest file after we're done if there were no errors
    if ($error) {
        throw new \RuntimeException(Text::_('JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MANIFEST_NOT_REMOVED'));
    }
}