function StatusReportPage::preRenderCounters
The #pre_render callback to create counter elements.
1 call to StatusReportPage::preRenderCounters()
- StatusReportPageTest::testPeRenderCounters in core/
modules/ system/ tests/ src/ Kernel/ Element/ StatusReportPageTest.php - Tests the status report page element.
File
-
core/
modules/ system/ src/ Element/ StatusReportPage.php, line 78
Class
- StatusReportPage
- Creates status report page element.
Namespace
Drupal\system\ElementCode
public static function preRenderCounters($element) {
// Count number of items with different severity for summary.
$counters = [
'error' => [
'amount' => 0,
'text' => t('Error'),
'text_plural' => t('Errors'),
],
'warning' => [
'amount' => 0,
'text' => t('Warning'),
'text_plural' => t('Warnings'),
],
'checked' => [
'amount' => 0,
'text' => t('Checked', [], [
'context' => 'Examined',
]),
'text_plural' => t('Checked', [], [
'context' => 'Examined',
]),
],
];
RequirementSeverity::convertLegacyIntSeveritiesToEnums($element['#requirements'], __METHOD__);
foreach ($element['#requirements'] as $key => &$requirement) {
$severity = RequirementSeverity::Info;
if (isset($requirement['severity'])) {
$severity = $requirement['severity'];
}
elseif (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'install') {
$severity = RequirementSeverity::OK;
}
if (isset($counters[$severity->status()])) {
$counters[$severity->status()]['amount']++;
}
}
foreach ($counters as $key => $counter) {
if ($counter['amount'] === 0) {
continue;
}
$text = new PluralTranslatableMarkup($counter['amount'], $counter['text'], $counter['text_plural']);
$element['#counters'][$key] = [
'#theme' => 'status_report_counter',
'#amount' => $counter['amount'],
'#text' => $text,
'#severity' => $key,
];
}
return $element;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.