diff -u b/core/modules/system/src/Element/StatusReport.php b/core/modules/system/src/Element/StatusReport.php
--- b/core/modules/system/src/Element/StatusReport.php
+++ b/core/modules/system/src/Element/StatusReport.php
@@ -19,11 +19,10 @@
$class = get_class($this);
return [
'#theme' => 'status_report',
- '#requirements' => [],
'#pre_render' => [
- [$class, 'preRenderGeneralInfo'],
[$class, 'preRenderCounters'],
[$class, 'preRenderGroupRequirements'],
+ [$class, 'preRenderGeneralInfo'],
],
];
}
@@ -36,32 +35,34 @@
'#theme' => 'status_report_general_info',
];
// Loop through requirements and pull out items.
- foreach ($element['#requirements'] as $key => &$requirement) {
- switch ($key) {
- case 'cron':
- foreach ($requirement['description'] as &$description_elements) {
- foreach ($description_elements as &$description_element) {
- if (isset($description_element['#url']) && $description_element['#url']->getRouteName() == 'system.run_cron') {
- $description_element['#attributes']['class'][] = 'button';
- $description_element['#attributes']['class'][] = 'button--small';
- $description_element['#attributes']['class'][] = 'button--primary';
- $description_element['#attributes']['class'][] = 'system-status-general-info__run-cron';
+ foreach ($element['#grouped_requirements'] as $key => $group) {
+ foreach ($group['items'] as $requirement_key => $requirement) {
+ switch ($requirement_key) {
+ case 'cron':
+ foreach ($requirement['description'] as &$description_elements) {
+ foreach ($description_elements as &$description_element) {
+ if (isset($description_element['#url']) && $description_element['#url']->getRouteName() == 'system.run_cron') {
+ $description_element['#attributes']['class'][] = 'button';
+ $description_element['#attributes']['class'][] = 'button--small';
+ $description_element['#attributes']['class'][] = 'button--primary';
+ $description_element['#attributes']['class'][] = 'system-status-general-info__run-cron';
+ }
}
}
- }
- $element['#general_info']['#' . $key] = $requirement;
- unset($element['#requirements'][$key]);
- break;
-
- case 'drupal':
- case 'webserver':
- case 'database_system':
- case 'database_system_version':
- case 'php':
- case 'php_memory_limit':
- $element['#general_info']['#' . $key] = $requirement;
- unset($element['#requirements'][$key]);
- break;
+ $element['#general_info']['#' . $requirement_key] = $requirement;
+ unset($element['#grouped_requirements'][$key][$requirement_key]);
+ break;
+
+ case 'drupal':
+ case 'webserver':
+ case 'database_system':
+ case 'database_system_version':
+ case 'php':
+ case 'php_memory_limit':
+ $element['#general_info']['#' . $requirement_key] = $requirement;
+ unset($element['#grouped_requirements'][$key][$requirement_key]);
+ break;
+ }
}
}
@@ -142,7 +143,7 @@
$grouped_requirements[$severity['status']]['title'] = $severity['title'];
$grouped_requirements[$severity['status']]['type'] = $severity['status'];
- $grouped_requirements[$severity['status']]['items'][] = $requirement;
+ $grouped_requirements[$severity['status']]['items'][$key] = $requirement;
}
// Order the grouped requirements by the counter keys. Add 'ok' to place
@@ -154,7 +155,7 @@
return $counter_keys[$a] > $counter_keys[$b];
});
- $element['#requirements'] = $grouped_requirements;
+ $element['#grouped_requirements'] = $grouped_requirements;
return $element;
}
diff -u b/core/modules/system/system.module b/core/modules/system/system.module
--- b/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -201,7 +201,7 @@
'variables' => array(
'counters' => array(),
'general_info' => array(),
- 'requirements' => NULL
+ 'grouped_requirements' => NULL,
),
),
'status_report_counter' => array(
diff -u b/core/modules/system/templates/status-report.html.twig b/core/modules/system/templates/status-report.html.twig
--- b/core/modules/system/templates/status-report.html.twig
+++ b/core/modules/system/templates/status-report.html.twig
@@ -1,10 +1,10 @@
{#
/**
* @file
- * Theme default theme implementation for the status report.
+ * Default theme implementation for the status report.
*
* Available variables:
- * - requirements: Contains grouped requirements.
+ * - grouped_requirements: Contains grouped requirements.
* Each group contains:
* - title: The title of the group.
* - type: The severity of the group.
@@ -21,27 +21,27 @@
- * @see template_preprocess_status_report()
+ * @ingroup themeable
*/
#}
-
-
- {% for group in requirements %}
- {% for requirement in group.items %}
-
- {% if requirement.severity_status in ['warning', 'error'] %}
-
- {{ requirement.severity_title }}
- {% else %}
- |
+{% for counter in counters %}
+ {{ counter }}
+{% endfor %}
+
+{{ general_info }}
+
+{% for group in grouped_requirements %}
+ {{ group.title }}
+ {% for requirement in group.items %}
+
+
+ {% if requirement.severity_title %}
+ {{ requirement.severity_title }}
{% endif %}
- {{ requirement.title }}
- |
-
- {{ requirement.value }}
- {% if requirement.description %}
- {{ requirement.description }}
- {% endif %}
- |
-
- {% endfor %}
+ {{ requirement.title }}
+
+
+ {{ requirement.value }}
+ {% if requirement.description %}
+ {{ requirement.description }}
+ {% endif %}
+
{% endfor %}
-
-
+{% endfor %}
diff -u b/core/themes/seven/templates/status-report/status-report.html.twig b/core/themes/seven/templates/status-report/status-report.html.twig
--- b/core/themes/seven/templates/status-report/status-report.html.twig
+++ b/core/themes/seven/templates/status-report/status-report.html.twig
@@ -4,7 +4,7 @@
* Theme override for the status report.
*
* Available variables:
- * - requirements: Contains grouped requirements.
+ * - grouped_requirements: Contains grouped requirements.
* Each group contains:
* - title: The title of the group.
* - type: The severity of the group.
@@ -40,12 +40,12 @@
{{ attach_library('seven/drupal.responsive-detail') }}
- {% for group in requirements %}
+ {% for group in grouped_requirements %}
{{ group.title }}
{% for requirement in group.items %}
- {% if requirement.severity_status in ['warning', 'error'] %}
+ {% if group.type in ['warning', 'error'] %}
{% set summary_classes = ' system-status-report__status-icon system-status-report__status-icon--' ~ group.type %}
{% endif %}
diff -u b/core/themes/stable/templates/admin/status-report.html.twig b/core/themes/stable/templates/admin/status-report.html.twig
--- b/core/themes/stable/templates/admin/status-report.html.twig
+++ b/core/themes/stable/templates/admin/status-report.html.twig
@@ -4,7 +4,7 @@
* Theme override for the status report.
*
* Available variables:
- * - requirements: Contains grouped requirements.
+ * - grouped_requirements: Contains grouped requirements.
* Each group contains:
* - title: The title of the group.
* - type: The severity of the group.
@@ -15,33 +15,32 @@
* - description: (optional) The requirement's description.
* - severity_title: The title of the severity.
* - severity_status: Indicates the severity status.
+ * - requirements: Contains list of requirements without grouping.
* - counters: The list of counter elements.
* - general_info: A render array to create general info element.
*
- * @see template_preprocess_status_report()
+ * @see stable_preprocess_status_report()
*/
#}
- {% for group in requirements %}
- {% for requirement in group.items %}
-
- {% if requirement.severity_status in ['warning', 'error'] %}
+ {% for requirement in requirements %}
+
+ {% if requirement.severity_status in ['warning', 'error'] %}
{{ requirement.severity_title }}
- {% else %}
+ {% else %}
|
- {% endif %}
- {{ requirement.title }}
- |
-
- {{ requirement.value }}
- {% if requirement.description %}
- {{ requirement.description }}
- {% endif %}
- |
-
- {% endfor %}
+ {% endif %}
+ {{ requirement.title }}
+
+
+ {{ requirement.value }}
+ {% if requirement.description %}
+ {{ requirement.description }}
+ {% endif %}
+ |
+
{% endfor %}
only in patch2:
unchanged:
--- a/core/themes/stable/stable.theme
+++ b/core/themes/stable/stable.theme
@@ -8,6 +8,15 @@
use Drupal\Component\Utility\Html;
/**
+ * Implements hook_theme_registry_alter().
+ */
+function stable_theme_registry_alter(&$registry) {
+ if (isset($registry['status_report'])) {
+ $registry['status_report']['variables']['requirements'] = NULL;
+ }
+}
+
+/**
* Implements template_preprocess_links().
*/
function stable_preprocess_links(&$variables) {
@@ -23,3 +32,63 @@ function stable_preprocess_links(&$variables) {
}
}
}
+
+/**
+ * Prepares variables for status report template.
+ *
+ * Default template: status-report.html.twig.
+ *
+ * This theme function is dependent on install.inc being loaded, because
+ * that's where the constants are defined.
+ *
+ * @param $variables
+ * An associative array containing:
+ * - requirements: An array of requirements/status items. Each requirement
+ * is an associative array containing the following elements:
+ * - title: The name of the requirement.
+ * - value: (optional) The current value (version, time, level, etc).
+ * - description: (optional) The description of the requirement.
+ * - severity: (optional) The requirement's result/severity level, one of:
+ * - REQUIREMENT_INFO: Status information.
+ * - REQUIREMENT_OK: The requirement is satisfied.
+ * - REQUIREMENT_WARNING: The requirement failed with a warning.
+ * - REQUIREMENT_ERROR: The requirement failed with an error.
+ */
+function template_preprocess_status_report(&$variables) {
+ $severities = [
+ REQUIREMENT_INFO => [
+ 'title' => t('Info'),
+ 'status' => 'info',
+ ],
+ REQUIREMENT_OK => [
+ 'title' => t('OK'),
+ 'status' => 'ok',
+ ],
+ REQUIREMENT_WARNING => [
+ 'title' => t('Warning'),
+ 'status' => 'warning',
+ ],
+ REQUIREMENT_ERROR => [
+ 'title' => t('Error'),
+ 'status' => 'error',
+ ],
+ ];
+
+ foreach ($variables['requirements'] as $i => $requirement) {
+ // Always use the explicit requirement severity, if defined. Otherwise,
+ // default to REQUIREMENT_OK in the installer to visually confirm that
+ // installation requirements are met. And default to REQUIREMENT_INFO to
+ // denote neutral information without special visualization.
+ if (isset($requirement['severity'])) {
+ $severity = $severities[(int) $requirement['severity']];
+ }
+ elseif (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'install') {
+ $severity = $severities[REQUIREMENT_OK];
+ }
+ else {
+ $severity = $severities[REQUIREMENT_INFO];
+ }
+ $variables['requirements'][$i]['severity_title'] = $severity['title'];
+ $variables['requirements'][$i]['severity_status'] = $severity['status'];
+ }
+}
only in patch2:
unchanged:
--- /dev/null
+++ b/core/themes/stable/templates/admin/status-report-counter.html.twig
@@ -0,0 +1,18 @@
+{#
+/**
+ * @file
+ * Theme override for status report counter.
+ *
+ * Available variables:
+ * - amount: The number shown on counter.
+ * - text: The text shown on counter.
+ * - severity: The severity of the counter.
+ *
+ * @ingroup themable
+ */
+#}
+
+ {{ amount }} {{ text }}
+
+ {{ text }} Details
+
only in patch2:
unchanged:
--- /dev/null
+++ b/core/themes/stable/templates/admin/status-report-general-info.html.twig
@@ -0,0 +1,75 @@
+{#
+/**
+ * @file
+ * Theme override for status report general info.
+ *
+ * Available variables:
+ * - drupal: The status of Drupal installation:
+ * - value: The current status of Drupal installation.
+ * - description: The description for current status of Drupal installation.
+ * - cron: The status of cron:
+ * - value: The current status of cron.
+ * - description: The description for current status of cron.
+ * - cron.run_cron: An array to render a button for running cron.
+ * - database_system: The status of database system:
+ * - value: The current status of database sytem.
+ * - description: The description for current status of cron.
+ * - database_system_version: The info about current database version:
+ * - value: The current version of database.
+ * - description: The description for current version of database.
+ * - php: The current version of PHP:
+ * - value: The status of currently installed PHP version.
+ * - description: The description for current installed PHP version.
+ * - php_memory_limit: The info about current PHP memory limit:
+ * - value: The status of currently set PHP memory limit.
+ * - description: The description for currently set PHP memory limit.
+ * - webserver: The info about currently installed web server:
+ * - value: The status of currently installed web server.
+ * - description: The description for the status of currently installed web
+ * server.
+ */
+#}
+{{ 'General System Information'|t }}
+
+
{{ 'Drupal Version'|t }}
+ {{ drupal.value }}
+ {{ drupal.description }}
+
+
+
+
{{ 'Last Cron Run'|t }}
+ {{ cron.value }}
+ {{ cron.run_cron }}
+ {{ cron.description }}
+
+
+
{{ 'Web Server'|t }}
+ {{ webserver.value }}
+ {{ webserver.description }}
+
+
+
+
{{ 'PHP'|t }}
+ {{ 'Version'|t }}
+
+ {{ php.value }}
+ {{ php.description }}
+
+ {{ 'Memory limit'|t }}
+
+ {{ php_memory_limit.value }}
+ {{ php_memory_limit.description }}
+
+
+
+
{{ 'Database'|t }}
+ {{ 'Version'|t }}
+
+ {{ database_system_version.value }}
+ {{ database_system_version.description }}
+
+ {{ 'System'|t }}
+
+ {{ database_system.value }}
+ {{ database_system.description }}
+