2 namespace TYPO3\CMS\Extensionmanager\Controller;
113 $hasDependencies =
false;
115 if ($this->configurationUtility->getCurrentConfiguration(
'extensionmanager')[
'automaticInstallation'][
'value']) {
116 $action =
'installFromTer';
118 $dependencyTypes = $this->managementService->getAndResolveDependencies($extension);
119 if (!empty($dependencyTypes)) {
120 $hasDependencies =
true;
121 $message =
'<p>' . $this->
translate(
'downloadExtension.dependencies.headline') .
'</p>';
122 foreach ($dependencyTypes as $dependencyType => $dependencies) {
124 foreach ($dependencies as $extensionKey => $dependency) {
125 $extensions .= $this->
translate(
'downloadExtension.dependencies.extensionWithVersion', array(
126 $extensionKey, $dependency->getVersion()
129 $message .= $this->
translate(
'downloadExtension.dependencies.typeHeadline',
131 $this->
translate(
'downloadExtension.dependencyType.' . $dependencyType),
136 $title = $this->
translate(
'downloadExtension.dependencies.resolveAutomatically');
138 $this->view->assign(
'dependencies', $dependencyTypes);
139 }
catch (\Exception $e) {
141 $title = $this->
translate(
'downloadExtension.dependencies.errorTitle');
142 $message = $e->getMessage();
146 $action =
'installExtensionWithoutSystemDependencyCheck';
148 $this->view->assign(
'extension', $extension)
149 ->assign(
'action', $action)
150 ->assign(
'hasDependencies', $hasDependencies)
151 ->assign(
'hasErrors', $hasErrors)
152 ->assign(
'message', $message)
153 ->assign(
'title', $title);
164 list($result, $errorMessages) = $this->
installFromTer($extension, $downloadPath);
165 $emConfiguration = $this->configurationUtility->getCurrentConfiguration(
'extensionmanager');
167 ->assign(
'result', $result)
168 ->assign(
'extension', $extension)
169 ->assign(
'installationTypeLanguageKey', (
bool)$emConfiguration[
'automaticInstallation'][
'value'] ?
'' :
'.downloadOnly')
170 ->assign(
'unresolvedDependencies', $errorMessages);
181 $this->managementService->setSkipDependencyCheck(
true);
182 $this->
forward(
'installFromTer', null, null, array(
'extension' => $extension,
'downloadPath' =>
'Local'));
195 $this->
forward(
'distributions',
'List');
197 list($result, $errorMessages) = $this->
installFromTer($extension);
198 if ($errorMessages) {
199 foreach ($errorMessages as $extensionKey => $messages) {
200 foreach ($messages as $message) {
204 'distribution.error.headline',
208 \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR
222 . $extension->getExtensionKey(),
223 \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate(
'distribution.welcome.headline',
'extensionmanager')
231 array(
'extension' => $extension)
246 $extensionKey = $this->request->getArgument(
'extension');
247 $version = $this->request->getArgument(
'version');
248 $extension = $this->extensionRepository->findOneByExtensionKeyAndVersion($extensionKey, $version);
250 $extension = $this->extensionRepository->findHighestAvailableVersion($extensionKey);
252 $installedExtensions = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getLoadedExtensionListArray();
254 if (in_array($extensionKey, $installedExtensions,
true)) {
256 $this->managementService->installExtension($extension);
258 $this->managementService->downloadMainExtension($extension);
261 $this->
translate(
'extensionList.updateFlashMessage.body', array($extensionKey)),
262 $this->
translate(
'extensionList.updateFlashMessage.title')
264 }
catch (\Exception $e) {
278 protected function updateCommentForUpdatableVersionsAction()
280 $extensionKey = $this->request->getArgument(
'extension');
281 $versionStart = $this->request->getArgument(
'integerVersionStart');
282 $versionStop = $this->request->getArgument(
'integerVersionStop');
283 $updateComments = array();
285 $updatableVersions = $this->extensionRepository->findByVersionRangeAndExtensionKeyOrderedByVersion(
291 $highestPossibleVersion =
false;
293 foreach ($updatableVersions as $updatableVersion) {
294 if ($highestPossibleVersion ===
false) {
295 $highestPossibleVersion = $updatableVersion->getVersion();
297 $updateComments[$updatableVersion->getVersion()] = $updatableVersion->getUpdateComment();
299 $this->view->assign(
'updateComments', $updateComments)
300 ->assign(
'extensionKey', $extensionKey)
301 ->assign(
'version', $highestPossibleVersion);
315 $errorMessages = array();
317 $this->downloadUtility->setDownloadPath($downloadPath);
318 $this->managementService->setAutomaticInstallationEnabled($this->configurationUtility->getCurrentConfiguration(
'extensionmanager')[
'automaticInstallation'][
'value']);
319 if (($result = $this->managementService->installExtension($extension)) ===
false) {
320 $errorMessages = $this->managementService->getDependencyErrors();
323 $errorMessages = array(
324 $extension->getExtensionKey() => array(
326 'code' => $e->getCode(),
327 'message' => $e->getMessage(),
333 return array($result, $errorMessages);