diff --git a/core/modules/system/lib/Drupal/system/Controller/SystemController.php b/core/modules/system/lib/Drupal/system/Controller/SystemController.php index 9f8c09faf90..361f7168a9e 100644 --- a/core/modules/system/lib/Drupal/system/Controller/SystemController.php +++ b/core/modules/system/lib/Drupal/system/Controller/SystemController.php @@ -137,12 +137,10 @@ class SystemController extends ControllerBase { ); if (!empty($block['content']['#content'])) { - $block['show'] = TRUE; + // Prepare for sorting as in function _menu_tree_check_access(). + // The weight is offset so it is always positive, with a uniform 5-digits. + $blocks[(50000 + $item['weight']) . ' ' . $item['title'] . ' ' . $item['mlid']] = $block; } - - // Prepare for sorting as in function _menu_tree_check_access(). - // The weight is offset so it is always positive, with a uniform 5-digits. - $blocks[(50000 + $item['weight']) . ' ' . $item['title'] . ' ' . $item['mlid']] = $block; } } } diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc index 57898529dd2..1ce2b9ef083 100644 --- a/core/modules/system/system.admin.inc +++ b/core/modules/system/system.admin.inc @@ -82,44 +82,6 @@ function _system_is_incompatible(&$incompatible, $files, Extension $file) { } } -/** - * Returns HTML for an administrative block for display. - * - * @param $variables - * An associative array containing: - * - block: An array containing information about the block: - * - show: A Boolean whether to output the block. Defaults to FALSE. - * - title: The block's title. - * - content: (optional) Formatted content for the block. - * - description: (optional) Description of the block. Only output if - * 'content' is not set. - * - * @ingroup themeable - */ -function theme_admin_block($variables) { - $block = $variables['block']; - $output = ''; - - // Don't display the block if it has no content to display. - if (empty($block['show'])) { - return $output; - } - - $output .= '
'; - if (!empty($block['title'])) { - $output .= '

' . $block['title'] . '

'; - } - if (!empty($block['content'])) { - $output .= '
' . render($block['content']) . '
'; - } - else { - $output .= '
' . $block['description'] . '
'; - } - $output .= '
'; - - return $output; -} - /** * Prepares variables for administrative content block templates. * @@ -231,7 +193,6 @@ function theme_system_admin_index($variables) { $block['title'] = $module; $block['content'] = drupal_render($admin_block_content); $block['description'] = t($description); - $block['show'] = TRUE; $admin_block = array( '#theme' => 'admin_block', diff --git a/core/modules/system/system.module b/core/modules/system/system.module index 25fe8d41fdf..6caca8af9a4 100644 --- a/core/modules/system/system.module +++ b/core/modules/system/system.module @@ -200,6 +200,7 @@ function system_theme() { 'admin_block' => array( 'variables' => array('block' => NULL), 'file' => 'system.admin.inc', + 'template' => 'admin-block', ), 'admin_block_content' => array( 'variables' => array('content' => NULL), diff --git a/core/modules/system/templates/admin-block.html.twig b/core/modules/system/templates/admin-block.html.twig new file mode 100644 index 00000000000..20aa000414b --- /dev/null +++ b/core/modules/system/templates/admin-block.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Default theme implementation for an administrative block. + * + * Available variables: + * - block: An array of information about the block, including: + * - show: A flag indicating if the block should be displayed. + * - title: The block title. + * - content: (optional) The content of the block. + * - description: (optional) A description of the block. + * (Description should only be output if content is not available). + * + * @ingroup themeable + */ +#} +
+ {% if block.title %} +

{{ block.title }}

+ {% endif %} + {% if block.content %} +
{{ block.content }}
+ {% elseif block.description %} +
{{ block.description }}
+ {% endif %} +