Issue #2115025 by Gábor Hojtsy, pfrenssen, dawehner: Content admin views title saved localized to the menu table.

8.0.x
webchick 2013-12-10 22:23:11 -08:00
parent 4c6309c6f8
commit d50b169598
6 changed files with 79 additions and 0 deletions

View File

@ -2607,6 +2607,9 @@ function menu_router_rebuild() {
* (optional) Save the new router to the database. Defaults to FALSE.
*/
function menu_router_build($save = FALSE) {
// Ensure that all configuration used to build the menu items are loaded
// without overrides.
config_context_enter('config.context.free');
// We need to manually call each module so that we can know which module
// a given item came from.
$callbacks = array();
@ -2621,6 +2624,8 @@ function menu_router_build($save = FALSE) {
}
// Alter the menu as defined in modules, keys are like user/%user.
drupal_alter('menu', $callbacks);
// Return to the original context before menu building.
config_context_leave();
foreach ($callbacks as $path => $router_item) {
// If the menu item is a default local task and incorrectly references a
// route, remove it.

View File

@ -0,0 +1,60 @@
<?php
/**
* @file
* Contains \Drupal\system\Tests\Menu\MenuRouterRebuildTest.
*/
namespace Drupal\system\Tests\Menu;
use Drupal\simpletest\WebTestBase;
use Drupal\Core\Language\Language;
/**
* Tests menu_router_rebuild().
*/
class MenuRouterRebuildTest extends WebTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array('locale', 'menu_test');
/**
* {@inheritdoc}
*/
public static function getInfo() {
return array(
'name' => 'Menu router rebuild',
'description' => 'Tests menu_router_rebuild().',
'group' => 'Menu',
);
}
/**
* {@inheritdoc}
*/
function setUp() {
parent::setUp();
$language = new Language(array('id' => 'nl'));
language_save($language);
}
/**
* Tests configuration context when rebuilding the menu router table.
*/
public function testMenuRouterRebuildContext() {
// Enter a language context before rebuilding the menu router tables.
$language_context = config_context_enter('Drupal\Core\Config\Context\LanguageConfigContext');
$language_context->setLanguage(language_load('nl'));
menu_router_rebuild();
// Check that the language context was not used for building the menu item.
$menu_item = menu_get_item('menu-test/context');
$this->assertTrue($menu_item['title'] == 'English', 'Config context overrides are ignored when rebuilding menu router items.');
}
}

View File

@ -0,0 +1 @@
title: English

View File

@ -293,6 +293,11 @@ function menu_test_menu() {
'type' => MENU_LOCAL_TASK,
);
$items['menu-test/context'] = array(
'title' => \Drupal::config('menu_test.menu_item')->get('title'),
'route_name' => 'menu_test.context',
);
return $items;
}

View File

@ -543,3 +543,10 @@ menu_test.title_test_case4:
_content: '\Drupal\menu_test\Controller\MenuTestController::menuTestCallback'
requirements:
_access: 'TRUE'
menu_test.context:
path: '/menu-test/context'
defaults:
_content: '\Drupal\menu_test\Controller\MenuTestController::menuTestCallback'
requirements:
_access: 'TRUE'