94 $this->pageRenderer->addInlineLanguageLabelFile(
'EXT:extensionmanager/Resources/Private/Language/locallang.xlf');
95 $isAutomaticInstallationEnabled = (bool)GeneralUtility::makeInstance(ExtensionConfiguration::class)->get(
'extensionmanager',
'offlineMode');
96 if ($isAutomaticInstallationEnabled) {
97 $this->settings[
'offlineMode'] =
true;
110 parent::initializeView(
$view);
124 'composerMode.message',
128 'composerMode.title',
142 $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
143 ksort($availableAndInstalledExtensions);
144 $this->view->assignMultiple(
146 'extensions' => $availableAndInstalledExtensions,
161 $availableExtensions = $this->listUtility->getAvailableExtensions();
162 if (isset($availableExtensions[$extensionKey])) {
163 $extensionArray = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation(
165 $extensionKey => $availableExtensions[$extensionKey]
169 $extensionModelUtility = $this->objectManager->get(ExtensionModelUtility::class);
170 $extension = $extensionModelUtility->mapExtensionArrayToModel($extensionArray[$extensionKey]);
172 throw new ExtensionManagerException(
'Extension ' . $extensionKey .
' is not available', 1402421007);
174 $this->dependencyUtility->checkDependencies($extension);
175 $this->view->assign(
'extension', $extension);
176 $this->view->assign(
'unresolvedDependencies', $this->dependencyUtility->getDependencyErrors());
188 $search = trim($search);
189 if (!empty($search)) {
190 $extensions = $this->extensionRepository->findByTitleOrAuthorNameOrExtensionKey($search);
192 $extensions = $this->extensionRepository->findAll();
194 $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensions($this->listUtility->getAvailableExtensions());
195 $this->view->assign(
'extensions', $extensions)
196 ->assign(
'search', $search)
197 ->assign(
'availableAndInstalled', $availableAndInstalledExtensions);
209 if ($importExportInstalled) {
212 $repositoryHelper = $this->objectManager->get(Helper::class);
215 $isExtListUpdateNecessary = $repositoryHelper->isExtListUpdateNecessary();
216 if ($isExtListUpdateNecessary > 0 && ($isExtListUpdateNecessary & $repositoryHelper::PROBLEM_EXTENSION_HASH_CHANGED) === 0) {
217 $repositoryHelper->updateExtList();
219 }
catch (ExtensionManagerException $e) {
223 $officialDistributions = $this->extensionRepository->findAllOfficialDistributions();
224 $communityDistributions = $this->extensionRepository->findAllCommunityDistributions();
226 $officialDistributions = $this->dependencyUtility->filterYoungestVersionOfExtensionList($officialDistributions->toArray(), $showUnsuitableDistributions);
227 $communityDistributions = $this->dependencyUtility->filterYoungestVersionOfExtensionList($communityDistributions->toArray(), $showUnsuitableDistributions);
229 $this->view->assign(
'officialDistributions', $officialDistributions);
230 $this->view->assign(
'communityDistributions', $communityDistributions);
232 $this->view->assign(
'enableDistributionsView', $importExportInstalled);
233 $this->view->assign(
'showUnsuitableDistributions', $showUnsuitableDistributions);
243 $currentVersion = $this->extensionRepository->findOneByCurrentVersionByExtensionKey($extensionKey);
244 $extensions = $this->extensionRepository->findByExtensionKeyOrderedByVersion($extensionKey);
246 $this->view->assignMultiple(
248 'extensionKey' => $extensionKey,
249 'currentVersion' => $currentVersion,
250 'extensions' => $extensions
266 if (!in_array($this->actionMethodName, [
'indexAction',
'terAction',
'showAllVersionsAction'],
true)) {
271 $buttonBar = $this->view->getModuleTemplate()->getDocHeaderComponent()->getButtonBar();
272 $uriBuilder = $this->controllerContext->getUriBuilder();
274 if ($this->actionMethodName ===
'showAllVersionsAction') {
275 $uri =
$uriBuilder->reset()->uriFor(
'ter', [],
'List');
276 $title = $this->
translate(
'extConfTemplate.backToList');
277 $icon = $this->view->getModuleTemplate()->getIconFactory()->getIcon(
'actions-view-go-back',
Icon::SIZE_SMALL);
280 $uri =
$uriBuilder->reset()->uriFor(
'form', [],
'UploadExtensionFile');
281 $title = $this->
translate(
'extensionList.uploadExtension');
282 $icon = $this->view->getModuleTemplate()->getIconFactory()->getIcon(
'actions-edit-upload',
Icon::SIZE_SMALL);
283 $classes =
't3js-upload';
285 $button = $buttonBar->makeLinkButton()
288 ->setClasses($classes)