‪TYPO3CMS  ‪main
UpdateFromTerController.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Psr\Http\Message\ResponseInterface;
21 use TYPO3\CMS\Backend\Utility\BackendUtility;
26 
32 {
33  protected string ‪$defaultViewObjectName = JsonView::class;
34 
35  public function ‪__construct(
36  protected readonly ‪RemoteRegistry $remoteRegistry,
37  protected readonly ‪ExtensionRepository $extensionRepository
38  ) {}
39 
43  public function ‪updateExtensionListFromTerAction(bool $forceUpdateCheck = false): ResponseInterface
44  {
45  $updated = false;
46  $errorMessage = '';
47  $lastUpdate = null;
48 
49  $emptyExtensionList = $this->extensionRepository->countAll() === 0;
50  try {
51  foreach ($this->remoteRegistry->getListableRemotes() as $remote) {
52  if ((!$updated && $emptyExtensionList) || $forceUpdateCheck) {
53  $remote->getAvailablePackages($forceUpdateCheck);
54  $updated = $forceUpdateCheck;
55  }
56  if ($lastUpdate === null || $lastUpdate < $remote->getLastUpdate()) {
57  $lastUpdate = $remote->getLastUpdate();
58  }
59  }
60  } catch (‪ExtensionManagerException $e) {
61  $errorMessage = $e->getMessage();
62  }
63 
64  $timeFormat = $this->‪translate('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:extensionList.updateFromTer.lastUpdate.fullTimeFormat');
65  if ($lastUpdate === null) {
66  $lastUpdatedSince = $this->‪translate('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:extensionList.updateFromTer.never');
67  $lastUpdateTime = date($timeFormat);
68  } else {
69  $lastUpdatedSince = BackendUtility::calcAge(
70  ‪$GLOBALS['EXEC_TIME'] - $lastUpdate->format('U'),
71  $this->translate('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.minutesHoursDaysYears')
72  );
73  $lastUpdateTime = $lastUpdate->format($timeFormat);
74  }
75  $this->view->assign('value', [
76  'updated' => $updated,
77  'lastUpdateTime' => $lastUpdateTime,
78  'timeSinceLastUpdate' => $lastUpdatedSince,
79  'errorMessage' => $errorMessage,
80  ]);
81 
82  return $this->‪jsonResponse();
83  }
84 }
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\$defaultViewObjectName
‪string $defaultViewObjectName
Definition: UpdateFromTerController.php:33
‪TYPO3\CMS\Extensionmanager\Controller\AbstractController\translate
‪translate(string $key, ?array $arguments=null)
Definition: AbstractController.php:51
‪TYPO3\CMS\Extensionmanager\Controller
Definition: AbstractController.php:18
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\jsonResponse
‪jsonResponse(string $json=null)
Definition: ActionController.php:813
‪TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository
Definition: ExtensionRepository.php:37
‪TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
Definition: ExtensionManagerException.php:25
‪TYPO3\CMS\Extensionmanager\Controller\AbstractController
Definition: AbstractController.php:32
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController
Definition: UpdateFromTerController.php:32
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\updateExtensionListFromTerAction
‪updateExtensionListFromTerAction(bool $forceUpdateCheck=false)
Definition: UpdateFromTerController.php:43
‪TYPO3\CMS\Extensionmanager\Controller\UpdateFromTerController\__construct
‪__construct(protected readonly RemoteRegistry $remoteRegistry, protected readonly ExtensionRepository $extensionRepository)
Definition: UpdateFromTerController.php:35
‪TYPO3\CMS\Extbase\Mvc\View\JsonView
Definition: JsonView.php:29
‪TYPO3\CMS\Extensionmanager\Remote\RemoteRegistry
Definition: RemoteRegistry.php:26