Issue #2497259 by aerozeppelin, catch, tim.plunkett, alexpott: system_region_list() unnecessarily translates region names

merge-requests/26/head
stefan.r 2016-09-29 17:22:31 +01:00
parent 0c770aa8b4
commit 809978d14d
4 changed files with 24 additions and 13 deletions

View File

@ -2639,7 +2639,7 @@ function template_preprocess_page(&$variables) {
// Move some variables to the top level for themer convenience and template cleanliness.
$variables['show_messages'] = $variables['page']['#show_messages'];
foreach (system_region_list($GLOBALS['theme']) as $region_key => $region_name) {
foreach (system_region_list($GLOBALS['theme'], REGIONS_ALL, FALSE) as $region_key) {
if (!isset($variables['page'][$region_key])) {
$variables['page'][$region_key] = array();
}

View File

@ -285,8 +285,7 @@ function block_page_build(&$page) {
// Append region description if we are rendering the regions demo page.
$item = menu_get_item();
if ($item['path'] == 'admin/structure/block/demo/' . $theme) {
$visible_regions = array_keys(system_region_list($theme, REGIONS_VISIBLE));
foreach ($visible_regions as $region) {
foreach (system_region_list($theme, REGIONS_VISIBLE, FALSE) as $region) {
$description = '<div class="block-region">' . $all_regions[$region] . '</div>';
$page[$region]['block_description'] = array(
'#markup' => $description,

View File

@ -1254,7 +1254,7 @@ class DrupalSetContentTestCase extends DrupalWebTestCase {
function testRegions() {
global $theme_key;
$block_regions = array_keys(system_region_list($theme_key));
$block_regions = system_region_list($theme_key, REGIONS_ALL, FALSE);
$delimiter = $this->randomName(32);
$values = array();
// Set some random content for each region available.

View File

@ -2705,10 +2705,17 @@ function system_find_base_themes($themes, $key, $used_keys = array()) {
* @param $show
* Possible values: REGIONS_ALL or REGIONS_VISIBLE. Visible excludes hidden
* regions.
* @return
* An array of regions in the form $region['name'] = 'description'.
* @param bool $labels
* (optional) Boolean to specify whether the human readable machine names
* should be returned or not. Defaults to TRUE, but calling code can set
* this to FALSE for better performance, if it only needs machine names.
*
* @return array
* An associative array of regions in the form $region['name'] = 'description'
* if $labels is set to TRUE, or $region['name'] = 'name', if $labels is set
* to FALSE.
*/
function system_region_list($theme_key, $show = REGIONS_ALL) {
function system_region_list($theme_key, $show = REGIONS_ALL, $labels = TRUE) {
$themes = list_themes();
if (!isset($themes[$theme_key])) {
return array();
@ -2719,10 +2726,14 @@ function system_region_list($theme_key, $show = REGIONS_ALL) {
// If requested, suppress hidden regions. See block_admin_display_form().
foreach ($info['regions'] as $name => $label) {
if ($show == REGIONS_ALL || !isset($info['regions_hidden']) || !in_array($name, $info['regions_hidden'])) {
$list[$name] = t($label);
if ($labels) {
$list[$name] = t($label);
}
else {
$list[$name] = $name;
}
}
}
return $list;
}
@ -2743,12 +2754,14 @@ function system_system_info_alter(&$info, $file, $type) {
*
* @param $theme
* The name of a theme.
*
* @return
* A string that is the region name.
*/
function system_default_region($theme) {
$regions = array_keys(system_region_list($theme, REGIONS_VISIBLE));
return isset($regions[0]) ? $regions[0] : '';
$regions = system_region_list($theme, REGIONS_VISIBLE, FALSE);
$region_0 = current($regions);
return isset($region_0) ? $region_0 : '';
}
/**
@ -3517,8 +3530,7 @@ function system_retrieve_file($url, $destination = NULL, $managed = FALSE, $repl
function system_page_alter(&$page) {
// Find all non-empty page regions, and add a theme wrapper function that
// allows them to be consistently themed.
$regions = system_region_list($GLOBALS['theme']);
foreach (array_keys($regions) as $region) {
foreach (system_region_list($GLOBALS['theme'], REGIONS_ALL, FALSE) as $region) {
if (!empty($page[$region])) {
$page[$region]['#theme_wrappers'][] = 'region';
$page[$region]['#region'] = $region;