/** * Shows list of extensions present in the system * * @return void */ public function indexAction() { $this->pageRenderer->addJsFile('../t3lib/js/extjs/notifications.js'); $availableExtensions = $this->listUtility->getAvailableExtensions(); $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensions($availableExtensions); $availableAndInstalledExtensions = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation($availableAndInstalledExtensions); $this->view->assign('extensions', $availableAndInstalledExtensions); }
/** * Shows a list of unresolved dependency errors with the possibility to bypass the dependency check * * @param string $extensionKey * @throws ExtensionManagerException * @return void */ public function unresolvedDependenciesAction($extensionKey) { $availableExtensions = $this->listUtility->getAvailableExtensions(); if (isset($availableExtensions[$extensionKey])) { $extensionArray = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation(array($extensionKey => $availableExtensions[$extensionKey])); /** @var ExtensionModelUtility $extensionModelUtility */ $extensionModelUtility = $this->objectManager->get(ExtensionModelUtility::class); $extension = $extensionModelUtility->mapExtensionArrayToModel($extensionArray[$extensionKey]); } else { throw new ExtensionManagerException('Extension ' . $extensionKey . ' is not available', 1402421007); } $this->dependencyUtility->checkDependencies($extension); $this->view->assign('extension', $extension); $this->view->assign('unresolvedDependencies', $this->dependencyUtility->getDependencyErrors()); }
/** * Returns all objects of this repository. * * @return array */ public function findAll() { if (!count($this->extensions)) { $availableExtensions = $this->listUtility->getAvailableExtensions(); $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensions($availableExtensions); $availableAndInstalledExtensions = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation($availableAndInstalledExtensions); foreach ($availableAndInstalledExtensions as $entry) { /** @var $extension \TYPO3\CMS\Lang\Domain\Model\Extension */ $extension = $this->objectManager->create('TYPO3\\CMS\\Lang\\Domain\\Model\\Extension', $entry['key'], $entry['title'], $this->getExtensionIconWithPath($entry)); $extension->setVersionFromString($entry['version']); $this->extensions[$entry['key']] = $extension; } // Sort the list by extension key ksort($this->extensions); } return $this->extensions; }
/** * Shows list of extensions present in the system * * @return void */ public function indexAction() { $availableExtensions = $this->listUtility->getAvailableExtensions(); $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensions($availableExtensions); $availableAndInstalledExtensions = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation($availableAndInstalledExtensions); $this->view->assign('extensions', $availableAndInstalledExtensions); $this->handleTriggerArguments(); }
/** * @param string $extensionKey * @return array * @throws ExtensionManagerException */ protected function getExtensionArray($extensionKey) { $availableExtensions = $this->listUtility->getAvailableExtensions(); if (isset($availableExtensions[$extensionKey])) { return $availableExtensions[$extensionKey]; } else { throw new ExtensionManagerException('Extension ' . $extensionKey . ' is not available', 1342864081); } }
/** * Fetch additional information for an extension key * * @param string $extensionKey * @internal * @return mixed * @throws \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException */ public function enrichExtensionWithDetails($extensionKey) { $availableExtensions = $this->listUtility->getAvailableExtensions(); if (isset($availableExtensions[$extensionKey])) { $extension = $availableExtensions[$extensionKey]; } else { throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException('Extension ' . $extensionKey . ' is not available', 1342864081); } $availableAndInstalledExtensions = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation(array($extensionKey => $extension)); return $availableAndInstalledExtensions[$extensionKey]; }
/** * Shows extensions from TER * Either all extensions or depending on a search param * * @param string $search * @return void */ public function terAction($search = '') { $search = trim($search); if (!empty($search)) { $extensions = $this->extensionRepository->findByTitleOrAuthorNameOrExtensionKey($search); } else { $extensions = $this->extensionRepository->findAll(); } $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensions($this->listUtility->getAvailableExtensions()); $this->view->assign('extensions', $extensions)->assign('search', $search)->assign('availableAndInstalled', $availableAndInstalledExtensions); }
/** * Fetch additional information for an extension key * * @param string $extensionKey * @access private * @return array * @throws \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException */ public function enrichExtensionWithDetails($extensionKey) { $availableExtensions = $this->listUtility->getAvailableExtensions(); if (isset($availableExtensions[$extensionKey])) { $extension = $availableExtensions[$extensionKey]; } else { throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException('Extension ' . $extensionKey . ' is not available', 1342864081); } $availableAndInstalledExtensions = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation(array($extensionKey => $extension)); if (!isset($availableAndInstalledExtensions[$extensionKey])) { throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException('Please check your uploaded extension "' . $extensionKey . '". The configuration file "ext_emconf.php" seems to be invalid.', 1391432222); } return $availableAndInstalledExtensions[$extensionKey]; }
public function findInstalledExtensionsThatDependOnMe($extensionKey) { $availableExtensions = $this->listUtility->getAvailableExtensions(); $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensions($availableExtensions); $availableAndInstalledExtensions = $this->listUtility->enrichExtensionsWithEmConfAndTerInformation($availableAndInstalledExtensions); $dependentExtensions = array(); foreach ($availableAndInstalledExtensions as $availableAndInstalledExtensionKey => $availableAndInstalledExtension) { if (isset($availableAndInstalledExtension['installed']) && $availableAndInstalledExtension['installed'] === TRUE) { if (is_array($availableAndInstalledExtension['constraints']) && is_array($availableAndInstalledExtension['constraints']['depends']) && array_key_exists($extensionKey, $availableAndInstalledExtension['constraints']['depends'])) { $dependentExtensions[] = $availableAndInstalledExtensionKey; } } } return $dependentExtensions; }
/** * Get array of installed extensions. * * @param string $type Local, System, Global or empty (for all) * * @throws InvalidArgumentException * @return array */ public function listExtensions($type = '') { $type = ucfirst(strtolower($type)); if (!empty($type) && $type !== 'Local' && $type !== 'Global' && $type !== 'System') { throw new InvalidArgumentException('Only "Local", "System", "Global" and "" (all) are supported as type'); } $this->initializeExtensionManagerObjects(); // TODO: Make listUtlity local var $extensions = $this->listUtility->getAvailableExtensions(); $list = array(); foreach ($extensions as $key => $extension) { if (!empty($type) && $type !== $extension['type'] || !$this->installUtility->isLoaded($extension['key'])) { continue; } // TODO: Make emConfUtility local var $configuration = $this->emConfUtility->includeEmConf($extension); if (!empty($configuration)) { $list[$key] = $configuration; } } ksort($list); return $list; }
/** * Setter for available extensions * gets available extensions from list utility if not already done * * @return void */ protected function setAvailableExtensions() { $this->availableExtensions = $this->listUtility->getAvailableExtensions(); }