function StatusReportPage::preRenderCounters

Same name and namespace in other branches
  1. 9 core/modules/system/src/Element/StatusReportPage.php \Drupal\system\Element\StatusReportPage::preRenderCounters()
  2. 8.9.x core/modules/system/src/Element/StatusReportPage.php \Drupal\system\Element\StatusReportPage::preRenderCounters()
  3. 10 core/modules/system/src/Element/StatusReportPage.php \Drupal\system\Element\StatusReportPage::preRenderCounters()

#pre_render callback to create counter elements.

File

core/modules/system/src/Element/StatusReportPage.php, line 76

Class

StatusReportPage
Creates status report page element.

Namespace

Drupal\system\Element

Code

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',
            ]),
        ],
    ];
    $severities = StatusReport::getSeverities();
    foreach ($element['#requirements'] as $key => &$requirement) {
        $severity = $severities[REQUIREMENT_INFO];
        if (isset($requirement['severity'])) {
            $severity = $severities[(int) $requirement['severity']];
        }
        elseif (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'install') {
            $severity = $severities[REQUIREMENT_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.