[BUGFIX] Hide report notice in about module for editors
[Packages/TYPO3.CMS.git] / typo3 / sysext / reports / Classes / Report / Status / WarningMessagePostProcessor.php
1 <?php
2 namespace TYPO3\CMS\Reports\Report\Status;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 /**
18 * Post processes the warning messages found in about modules.
19 */
20 class WarningMessagePostProcessor
21 {
22 /**
23 * Tries to get the highest severity of the system's status first, if
24 * something is found it is assumed that the status update task is set up
25 * properly or the status report has been checked manually and we take over
26 * control over the system warning messages.
27 *
28 * @param array $warningMessages An array of messages related to already found issues.
29 */
30 public function displayWarningMessages_postProcess(array &$warningMessages)
31 {
32 if (!$GLOBALS['BE_USER']->isAdmin()) {
33 return;
34 }
35 // Get highest severity
36 $registry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Registry::class);
37 $highestSeverity = $registry->get('tx_reports', 'status.highestSeverity', null);
38 if (!is_null($highestSeverity)) {
39 if ($highestSeverity > \TYPO3\CMS\Reports\Status::OK) {
40 // Display a message that there's something wrong and that
41 // the admin should take a look at the detailed status report
42 $GLOBALS['LANG']->includeLLFile('EXT:reports/Resources/Private/Language/locallang_reports.xlf');
43 $reportModuleIdentifier = 'system_ReportsTxreportsm1';
44 $reportModuleParameters = array(
45 'tx_reports_system_reportstxreportsm1[extension]=tx_reports',
46 'tx_reports_system_reportstxreportsm1[report]=status',
47 'tx_reports_system_reportstxreportsm1[action]=detail',
48 'tx_reports_system_reportstxreportsm1[controller]=Report',
49 );
50 $warningMessages['tx_reports_status_notification'] = sprintf(
51 $GLOBALS['LANG']->getLL('status_problemNotification'),
52 '<a href="javascript:top.goToModule(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($reportModuleIdentifier) . ', 1, ' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue('&' . implode('&', $reportModuleParameters)) . ');">', '</a>'
53 );
54 }
55 }
56 }
57 }