‪TYPO3CMS  11.5
UpdateFromTerController.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
18 use Psr\Http\Message\ResponseInterface;
19 use TYPO3\CMS\Backend\Utility\BackendUtility;
26 
32 {
36 
40  protected ‪$defaultViewObjectName = JsonView::class;
41 
42  public function ‪__construct(
46  ) {
47  $this->remoteRegistry = ‪$remoteRegistry;
48  $this->listUtility = ‪$listUtility;
49  $this->extensionRepository = ‪$extensionRepository;
50  }
51 
57  public function ‪updateExtensionListFromTerAction($forceUpdateCheck = false): ResponseInterface
58  {
59  $updated = false;
60  $errorMessage = '';
61  $lastUpdate = null;
62 
63  $emptyExtensionList = $this->extensionRepository->countAll() === 0;
64  try {
65  foreach ($this->remoteRegistry->getListableRemotes() as $remote) {
66  if ((!$updated && $emptyExtensionList) || $forceUpdateCheck) {
67  $remote->getAvailablePackages($forceUpdateCheck);
68  $updated = $forceUpdateCheck;
69  }
70  if ($lastUpdate === null || $lastUpdate < $remote->getLastUpdate()) {
71  $lastUpdate = $remote->getLastUpdate();
72  }
73  }
74  } catch (ExtensionManagerException $e) {
75  $errorMessage = $e->getMessage();
76  }
77 
78  $timeFormat = $this->‪getLanguageService()->‪sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:extensionList.updateFromTer.lastUpdate.fullTimeFormat');
79  if ($lastUpdate === null) {
80  $lastUpdatedSince = $this->‪getLanguageService()->‪sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:extensionList.updateFromTer.never');
81  $lastUpdateTime = date($timeFormat);
82  } else {
83  $lastUpdatedSince = BackendUtility::calcAge(
84  ‪$GLOBALS['EXEC_TIME'] - $lastUpdate->format('U'),
85  $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.minutesHoursDaysYears')
86  );
87  $lastUpdateTime = $lastUpdate->format($timeFormat);
88  }
89  $this->view->assign('value', [
90  'updated' => $updated,
91  'lastUpdateTime' => $lastUpdateTime,
92  'timeSinceLastUpdate' => $lastUpdatedSince,
93  'errorMessage' => $errorMessage,
94  ]);
95 
96  return $this->‪jsonResponse();
97  }
98 
102  protected function ‪getLanguageService()
103  {
104  return ‪$GLOBALS['LANG'];
105  }
106 }
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\$defaultViewObjectName
‪string $defaultViewObjectName
Definition: UpdateFromTerController.php:39
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\jsonResponse
‪ResponseInterface jsonResponse(string $json=null)
Definition: ActionController.php:1081
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\$extensionRepository
‪ExtensionRepository $extensionRepository
Definition: UpdateFromTerController.php:35
‪TYPO3\CMS\Extensionmanager\Controller
Definition: AbstractController.php:16
‪TYPO3\CMS\Core\Localization\LanguageService\sL
‪string sL($input)
Definition: LanguageService.php:161
‪TYPO3\CMS\Extensionmanager\Utility\ListUtility
Definition: ListUtility.php:40
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\getLanguageService
‪LanguageService getLanguageService()
Definition: UpdateFromTerController.php:101
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\updateExtensionListFromTerAction
‪updateExtensionListFromTerAction($forceUpdateCheck=false)
Definition: UpdateFromTerController.php:56
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\__construct
‪__construct(RemoteRegistry $remoteRegistry, ListUtility $listUtility, ExtensionRepository $extensionRepository)
Definition: UpdateFromTerController.php:41
‪TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository
Definition: ExtensionRepository.php:34
‪TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
Definition: ExtensionManagerException.php:23
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\$listUtility
‪ListUtility $listUtility
Definition: UpdateFromTerController.php:34
‪TYPO3\CMS\Extensionmanager\Controller\AbstractController
Definition: AbstractController.php:26
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController
Definition: UpdateFromTerController.php:32
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\$remoteRegistry
‪RemoteRegistry $remoteRegistry
Definition: UpdateFromTerController.php:33
‪TYPO3\CMS\Extbase\Mvc\View\JsonView
Definition: JsonView.php:31
‪TYPO3\CMS\Extensionmanager\Remote\RemoteRegistry
Definition: RemoteRegistry.php:26