TYPO3 CMS  TYPO3_6-2
ListController.php
Go to the documentation of this file.
1 <?php
3 
20 
27 
33 
38  protected $listUtility;
39 
44  protected $pageRenderer;
45 
50  protected $dependencyUtility;
51 
55  public function initializeAction() {
56  $this->pageRenderer->addJsFile('sysext/backend/Resources/Public/JavaScript/notifications.js');
57  $this->pageRenderer->addInlineLanguageLabelFile('EXT:extensionmanager/Resources/Private/Language/locallang.xlf');
58  }
59 
65  public function indexAction() {
66  $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
67  $this->view->assign('extensions', $availableAndInstalledExtensions);
68  $this->handleTriggerArguments();
69  }
70 
78  public function unresolvedDependenciesAction($extensionKey) {
79  $availableExtensions = $this->listUtility->getAvailableExtensions();
80  if (isset($availableExtensions[$extensionKey])) {
81  $extensionArray = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation(
82  array(
83  $extensionKey => $availableExtensions[$extensionKey]
84  )
85  );
87  $extensionModelUtility = $this->objectManager->get('TYPO3\\CMS\\Extensionmanager\\Utility\\ExtensionModelUtility');
88  $extension = $extensionModelUtility->mapExtensionArrayToModel($extensionArray[$extensionKey]);
89  } else {
90  throw new ExtensionManagerException('Extension ' . $extensionKey . ' is not available', 1402421007);
91  }
92  $this->dependencyUtility->checkDependencies($extension);
93  $this->view->assign('extension', $extension);
94  $this->view->assign('unresolvedDependencies', $this->dependencyUtility->getDependencyErrors());
95  }
96 
104  public function terAction($search = '') {
105  $search = trim($search);
106  if (!empty($search)) {
107  $extensions = $this->extensionRepository->findByTitleOrAuthorNameOrExtensionKey($search);
108  } else {
109  $extensions = $this->extensionRepository->findAll();
110  }
111  $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensions($this->listUtility->getAvailableExtensions());
112  $this->view->assign('extensions', $extensions)
113  ->assign('search', $search)
114  ->assign('availableAndInstalled', $availableAndInstalledExtensions);
115  }
116 
122  public function distributionsAction() {
123  $importExportInstalled = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('impexp');
124  if ($importExportInstalled) {
125  try {
127  $repositoryHelper = $this->objectManager->get('TYPO3\\CMS\\Extensionmanager\\Utility\\Repository\\Helper');
128  // Check if a TER update has been done at all, if not, fetch it directly
129  // Repository needs an update, but not because of the extension hash has changed
130  $isExtListUpdateNecessary = $repositoryHelper->isExtListUpdateNecessary();
131  if ($isExtListUpdateNecessary > 0 && ($isExtListUpdateNecessary & $repositoryHelper::PROBLEM_EXTENSION_HASH_CHANGED) === 0) {
132  $repositoryHelper->updateExtList();
133  }
134  } catch (ExtensionManagerException $e) {
135  $this->addFlashMessage(htmlspecialchars($e->getMessage()), $e->getCode(), FlashMessage::ERROR);
136  }
137 
138  $officialDistributions = $this->extensionRepository->findAllOfficialDistributions();
139  $this->view->assign('officialDistributions', $officialDistributions);
140 
141  $communityDistributions = $this->extensionRepository->findAllCommunityDistributions();
142  $this->view->assign('communityDistributions', $communityDistributions);
143  }
144  $this->view->assign('enableDistributionsView', $importExportInstalled);
145  }
146 
153  public function showAllVersionsAction($extensionKey) {
154  $currentVersion = $this->extensionRepository->findOneByCurrentVersionByExtensionKey($extensionKey);
155  $extensions = $this->extensionRepository->findByExtensionKeyOrderedByVersion($extensionKey);
156 
157  $this->view->assignMultiple(
158  array(
159  'extensionKey' => $extensionKey,
160  'currentVersion' => $currentVersion,
161  'extensions' => $extensions
162  )
163  );
164  }
165 }
addFlashMessage($messageBody, $messageTitle='', $severity=\TYPO3\CMS\Core\Messaging\AbstractMessage::OK, $storeInSession=TRUE)