2 namespace TYPO3\CMS\Extensionmanager\Controller;
121 'Composer mode is active. You are not allowed to upload any extension file.',
138 'Composer mode is active. You are not allowed to upload any extension file.',
142 $file = $_FILES[
'tx_extensionmanager_tools_extensionmanagerextensionmanager'];
143 $fileName = pathinfo($file[
'name'][
'extensionFile'], PATHINFO_BASENAME);
147 if (!empty($file[
'tmp_name'][
'extensionFile'])) {
151 'Creating temporary file failed. Check your upload_max_filesize and post_max_size limits.',
156 $emConfiguration = $this->configurationUtility->getCurrentConfiguration(
'extensionmanager');
157 if (!$emConfiguration[
'automaticInstallation'][
'value']) {
159 $this->
translate(
'extensionList.uploadFlashMessage.message', array($extensionData[
'extKey'])),
160 $this->
translate(
'extensionList.uploadFlashMessage.title'),
166 $this->
translate(
'extensionList.installedFlashMessage.message', array($extensionData[
'extKey'])),
171 $this->
redirect(
'unresolvedDependencies',
'List', null, array(
'extensionKey' => $extensionData[
'extKey']));
174 }
catch (\TYPO3\CMS\Extbase\Mvc\Exception\StopActionException $exception) {
178 }
catch (\Exception $exception) {
182 $this->
redirect(
'index',
'List', null, array(self::TRIGGER_RefreshModuleMenu =>
true));
194 $extension = pathinfo($fileName, PATHINFO_EXTENSION);
195 if (empty($fileName)) {
198 if ($extension !==
't3x' && $extension !==
'zip') {
199 throw new ExtensionManagerException(
'Wrong file format "' . $extension .
'" given. Allowed formats are t3x and zip.', 1342858853);
215 $fileExtension = pathinfo($fileName, PATHINFO_EXTENSION);
216 if ($fileExtension ===
't3x') {
222 return $extensionData;
231 $this->managementService->reloadPackageInformation($extensionKey);
232 $extension = $this->managementService->getExtension($extensionKey);
233 return is_array($this->managementService->installExtension($extension));
251 $extensionData = $this->terUtility->decodeExchangeData($fileContent);
252 if (empty($extensionData[
'extKey'])) {
255 $isExtensionAvailable = $this->managementService->isAvailable($extensionData[
'extKey']);
256 if (!$overwrite && $isExtensionAvailable) {
259 if ($isExtensionAvailable) {
262 $this->removeFromOriginalPath =
true;
263 $extension = $this->extensionRepository->findOneByExtensionKeyAndVersion($extensionData[
'extKey'], $extensionData[
'EM_CONF'][
'version']);
264 $this->fileHandlingUtility->unpackExtensionFromExtensionDataArray($extensionData, $extension);
266 if (empty($extension)
267 && empty($extensionData[
'EM_CONF'][
'constraints'])
268 && !isset($extensionData[
'FILES'][
'ext_emconf.php'])
269 && !isset($extensionData[
'FILES'][
'/ext_emconf.php'])
271 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);
274 return $extensionData;
293 $isExtensionAvailable = $this->managementService->isAvailable($extensionKey);
294 if (!$overwrite && $isExtensionAvailable) {
297 if ($isExtensionAvailable) {
300 $this->removeFromOriginalPath =
true;
301 $this->fileHandlingUtility->unzipExtensionFromFile($file, $extensionKey);
303 return array(
'extKey' => $extensionKey);
314 return preg_replace(
'/_(\\d+)(\\.|\\-)(\\d+)(\\.|\\-)(\\d+).*/i',
'', strtolower(substr($fileName, 0, -4)));
326 $this->extensionBackupPath = PATH_site .
'typo3temp/' . $extensionKey . substr(sha1($extensionKey . microtime()), 0, 7) .
'/';
329 $this->fileHandlingUtility->getExtensionDir($extensionKey),
344 if ($this->removeFromOriginalPath && is_dir($extDirPath)) {
347 if (!empty($this->extensionBackupPath)) {
359 if (!empty($this->extensionBackupPath)) {
361 $this->extensionBackupPath =
'';