88 if (in_array($extensionKey, $installedExtensions)) {
90 $this->installUtility->uninstall($extensionKey);
93 $extension = $this->extensionModelUtility->mapExtensionArrayToModel(
94 $this->installUtility->enrichExtensionWithDetails($extensionKey,
false)
96 if ($this->managementService->installExtension($extension) ===
false) {
97 $this->
redirect(
'unresolvedDependencies',
'List',
null, [
'extensionKey' => $extensionKey]);
100 }
catch (\
TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {
102 }
catch (\
TYPO3\CMS\Core\Package\Exception\PackageStatesFileNotWritableException $e) {
105 $this->
redirect(
'index',
'List',
null, [
106 self::TRIGGER_RefreshModuleMenu =>
true,
107 self::TRIGGER_RefreshTopbar =>
true
118 $this->managementService->setSkipDependencyCheck(
true);
119 $this->
forward(
'toggleExtensionInstallationState',
null,
null, [
'extensionKey' => $extensionKey]);
132 throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException(
133 'The system is set to composer mode. You are not allowed to remove any extension.',
138 $this->installUtility->removeExtension($extension);
141 'extensionList.remove.message',
144 'extension' => $extension,
148 }
catch (\
TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {
150 }
catch (\
TYPO3\CMS\Core\Package\Exception $e) {
164 $fileName = $this->fileHandlingUtility->createZipFileFromExtension($extension);
165 $this->fileHandlingUtility->sendZipFileToBrowserAndDelete($fileName);
175 $extension = $this->installUtility->enrichExtensionWithDetails($extension,
false);
176 $registryKey = $extension[
'siteRelPath'] .
'ext_tables_static+adt.sql';
178 $registry = GeneralUtility::makeInstance(Registry::class);
179 $registry->remove(
'extensionDataImport', $registryKey);
181 $this->installUtility->processExtensionSetup($extension[
'key']);