repositoryHelper = $repositoryHelper; } /** * @param \TYPO3\CMS\Extensionmanager\Domain\Repository\RepositoryRepository $repositoryRepository */ public function injectRepositoryRepository(\TYPO3\CMS\Extensionmanager\Domain\Repository\RepositoryRepository $repositoryRepository) { $this->repositoryRepository = $repositoryRepository; } /** * @param \TYPO3\CMS\Extensionmanager\Utility\ListUtility $listUtility */ public function injectListUtility(\TYPO3\CMS\Extensionmanager\Utility\ListUtility $listUtility) { $this->listUtility = $listUtility; } /** * @param \TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository $extensionRepository */ public function injectExtensionRepository(\TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository $extensionRepository) { $this->extensionRepository = $extensionRepository; } /** * Update extension list from TER * * @param bool $forceUpdateCheck */ public function updateExtensionListFromTerAction($forceUpdateCheck = false) { $updated = false; $errorMessage = ''; if ($this->extensionRepository->countAll() === 0 || $forceUpdateCheck) { try { $updated = $this->repositoryHelper->updateExtList(); } catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) { $errorMessage = $e->getMessage(); } } /** @var \TYPO3\CMS\Extensionmanager\Domain\Model\Repository $repository */ $repository = $this->repositoryRepository->findOneTypo3OrgRepository(); $timeFormat = $this->getLanguageService()->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:extensionList.updateFromTer.lastUpdate.fullTimeFormat'); $lastUpdateTime = $repository ? $repository->getLastUpdate() : null; if (null === $lastUpdateTime) { $lastUpdatedSince = $this->getLanguageService()->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:extensionList.updateFromTer.never'); $lastUpdateTime = date($timeFormat); } else { $lastUpdatedSince = \TYPO3\CMS\Backend\Utility\BackendUtility::calcAge( time() - $lastUpdateTime->format('U'), $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.minutesHoursDaysYears') ); $lastUpdateTime = $lastUpdateTime->format($timeFormat); } $this->view->assign('value', [ 'updated' => $updated, 'lastUpdateTime' => $lastUpdateTime, 'timeSinceLastUpdate' => $lastUpdatedSince, 'errorMessage' => $errorMessage ]); } /** * @return LanguageService */ protected function getLanguageService() { return $GLOBALS['LANG']; } }