93 $file = $_FILES[
'tx_extensionmanager_tools_extensionmanagerextensionmanager'];
94 $fileName = pathinfo($file[
'name'][
'extensionFile'], PATHINFO_BASENAME);
98 if (!empty($file[
'tmp_name'][
'extensionFile'])) {
102 'Creating temporary file failed. Check your upload_max_filesize and post_max_size limits.',
109 htmlspecialchars($this->
translate(
'extensionList.uploadFlashMessage.message', array($extensionData[
'extKey']))),
110 htmlspecialchars($this->
translate(
'extensionList.uploadFlashMessage.title')),
114 htmlspecialchars($this->
translate(
'extensionList.installedFlashMessage.message', array($extensionData[
'extKey']))),
119 $this->
redirect(
'unresolvedDependencies',
'List', NULL, array(
'extensionKey' => $extensionData[
'extKey']));
121 }
catch (\
TYPO3\CMS\Extbase\Mvc\Exception\StopActionException $exception) {
125 }
catch (\Exception $exception) {
129 $this->
redirect(
'index',
'List', NULL, array(self::TRIGGER_RefreshModuleMenu => TRUE));
140 $extension = pathinfo($fileName, PATHINFO_EXTENSION);
141 if (empty($fileName)) {
144 if ($extension !==
't3x' && $extension !==
'zip') {
145 throw new ExtensionManagerException(
'Wrong file format "' . $extension .
'" given. Allowed formats are t3x and zip.', 1342858853);
160 $fileExtension = pathinfo($fileName, PATHINFO_EXTENSION);
161 if ($fileExtension ===
't3x') {
167 return $extensionData;
175 $extension = $this->managementService->getExtension($extensionKey);
176 return is_array($this->managementService->installExtension($extension));
193 $extensionData = $this->terUtility->decodeExchangeData($fileContent);
194 if (empty($extensionData[
'extKey'])) {
197 $isExtensionAvailable = $this->managementService->isAvailable($extensionData[
'extKey']);
198 if (!$overwrite && $isExtensionAvailable) {
201 if ($isExtensionAvailable) {
204 $this->removeFromOriginalPath = TRUE;
205 $extension = $this->extensionRepository->findOneByExtensionKeyAndVersion($extensionData[
'extKey'], $extensionData[
'EM_CONF'][
'version']);
206 $this->fileHandlingUtility->unpackExtensionFromExtensionDataArray($extensionData, $extension);
208 if (empty($extension)
209 && empty($extensionData[
'EM_CONF'][
'constraints'])
210 && !isset($extensionData[
'FILES'][
'ext_emconf.php'])
211 && !isset($extensionData[
'FILES'][
'/ext_emconf.php'])
213 throw new DependencyConfigurationNotFoundException(
'Extension cannot be installed automatically because no dependencies could be found! Please check dependencies manually (on typo3.org) before installing the extension.', 1439587168);
216 return $extensionData;
234 $isExtensionAvailable = $this->managementService->isAvailable($extensionKey);
235 if (!$overwrite && $isExtensionAvailable) {
238 if ($isExtensionAvailable) {
241 $this->removeFromOriginalPath = TRUE;
242 $this->fileHandlingUtility->unzipExtensionFromFile($file, $extensionKey);
244 return array(
'extKey' => $extensionKey);
254 return preg_replace(
'/_(\\d+)(\\.|\\-)(\\d+)(\\.|\\-)(\\d+).*/i',
'', strtolower(substr($fileName, 0, -4)));
265 $this->extensionBackupPath = PATH_site .
'typo3temp/' . $extensionKey . substr(sha1($extensionKey . microtime()), 0, 7) .
'/';
268 $this->fileHandlingUtility->getExtensionDir($extensionKey),
282 if ($this->removeFromOriginalPath && is_dir($extDirPath)) {
285 if (!empty($this->extensionBackupPath)) {
296 if (!empty($this->extensionBackupPath)) {
298 $this->extensionBackupPath =
'';
removeExtensionAndRestoreFromBackup($fileName)
translate($key, $arguments=NULL)
getExtensionKeyFromFileName($fileName)
extractExtensionFromFile($uploadPath, $fileName, $overwrite)
static rmdir($path, $removeNonEmpty=FALSE)
activateExtension($extensionKey)
static copyDirectory($source, $destination)
extractAction($overwrite=FALSE)
getExtensionFromT3xFile($file, $overwrite=FALSE)
redirect($actionName, $controllerName=NULL, $extensionName=NULL, array $arguments=NULL, $pageUid=NULL, $delay=0, $statusCode=303)
static getUrl($url, $includeHeader=0, $requestHeaders=FALSE, &$report=NULL)
static upload_to_tempfile($uploadedFileName)
copyExtensionFolderToTempFolder($extensionKey)
addFlashMessage($messageBody, $messageTitle='', $severity=\TYPO3\CMS\Core\Messaging\AbstractMessage::OK, $storeInSession=TRUE)
injectExtensionRepository(\TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository $extensionRepository)
getExtensionFromZipFile($file, $fileName, $overwrite=FALSE)