‪TYPO3CMS  11.5
FalStatus.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 
24 use ‪TYPO3\CMS\Reports\Status as ReportStatus;
26 
31 {
37  public function ‪getStatus()
38  {
39  $statuses = [
40  'MissingFiles' => $this->‪getMissingFilesStatus(),
41  ];
42  return $statuses;
43  }
44 
50  protected function ‪getMissingFilesStatus()
51  {
52  $value = $this->‪getLanguageService()->‪getLL('status_none');
53  $count = 0;
54  $maxFilesToShow = 100;
55  $message = '';
56  $severity = ReportStatus::OK;
57 
58  $storageRepository = GeneralUtility::makeInstance(StorageRepository::class);
59  $storageObjects = $storageRepository->findAll();
60  $storages = [];
61 
63  foreach ($storageObjects as $storageObject) {
64  // We only check missing files for storages that are online
65  if ($storageObject->isOnline()) {
66  $storages[$storageObject->getUid()] = $storageObject;
67  }
68  }
69 
70  if (!empty($storages)) {
71  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_file');
72  $count = $queryBuilder
73  ->count('*')
74  ->from('sys_file')
75  ->where(
76  $queryBuilder->expr()->eq(
77  'missing',
78  $queryBuilder->createNamedParameter(1, ‪Connection::PARAM_INT)
79  ),
80  $queryBuilder->expr()->in(
81  'storage',
82  $queryBuilder->createNamedParameter(array_keys($storages), Connection::PARAM_INT_ARRAY)
83  )
84  )
85  ->executeQuery()
86  ->fetchOne();
87  }
88 
89  if ($count) {
90  $value = sprintf($this->‪getLanguageService()->getLL('status_missingFilesCount'), $count);
91  $severity = ReportStatus::WARNING;
92 
93  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_file');
94  $files = $queryBuilder
95  ->select('identifier', 'storage')
96  ->from('sys_file')
97  ->where(
98  $queryBuilder->expr()->eq(
99  'missing',
100  $queryBuilder->createNamedParameter(1, ‪Connection::PARAM_INT)
101  ),
102  $queryBuilder->expr()->in(
103  'storage',
104  $queryBuilder->createNamedParameter(array_keys($storages), Connection::PARAM_INT_ARRAY)
105  )
106  )
107  ->setMaxResults($maxFilesToShow)
108  ->executeQuery()
109  ->fetchAllAssociative();
110 
111  $message = '<p>' . $this->‪getLanguageService()->‪getLL('status_missingFilesMessage') . '</p>';
112  foreach ($files as $file) {
113  $message .= $storages[$file['storage']]->getName() . ' ' . $file['identifier'] . '<br />';
114  }
115 
116  if ($count > $maxFilesToShow) {
117  $message .= '...<br />';
118  }
119  }
120 
121  return GeneralUtility::makeInstance(ReportStatus::class, $this->‪getLanguageService()->getLL('status_missingFiles'), $value, $message, $severity);
122  }
123 
127  protected function ‪getLanguageService()
128  {
129  return ‪$GLOBALS['LANG'];
130  }
131 }
‪TYPO3\CMS\Reports\StatusProviderInterface
Definition: StatusProviderInterface.php:22
‪TYPO3\CMS\Core\Database\Connection\PARAM_INT
‪const PARAM_INT
Definition: Connection.php:49
‪TYPO3\CMS\Reports\Report\Status\FalStatus\getLanguageService
‪LanguageService getLanguageService()
Definition: FalStatus.php:127
‪TYPO3\CMS\Reports\Status
Definition: Status.php:24
‪TYPO3\CMS\Reports\Report\Status\FalStatus\getStatus
‪array getStatus()
Definition: FalStatus.php:37
‪TYPO3\CMS\Reports\Report\Status\FalStatus\getMissingFilesStatus
‪TYPO3 CMS Reports Status getMissingFilesStatus()
Definition: FalStatus.php:50
‪TYPO3\CMS\Core\Resource\StorageRepository
Definition: StorageRepository.php:38
‪TYPO3\CMS\Core\Database\Connection
Definition: Connection.php:38
‪TYPO3\CMS\Core\Resource\ResourceStorage
Definition: ResourceStorage.php:125
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Reports\Report\Status
Definition: ConfigurationStatus.php:16
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:46
‪TYPO3\CMS\Core\Localization\LanguageService\getLL
‪string getLL($index)
Definition: LanguageService.php:121
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Reports\Report\Status\FalStatus
Definition: FalStatus.php:31