Commit 820f4eb8 authored by catch's avatar catch

Issue #1564388 by anrikun, sun: Fixed 'My account' link is never in the active trail.

parent ac0708ae
......@@ -407,7 +407,10 @@ function testBreadCrumbs() {
$trail += array(
'user/' . $this->web_user->uid => $this->web_user->name,
);
$this->assertBreadcrumb('user/' . $this->web_user->uid . '/edit', $trail, $this->web_user->name);
$tree = array(
'user' => t('My account'),
);
$this->assertBreadcrumb('user/' . $this->web_user->uid . '/edit', $trail, $this->web_user->name, $tree);
// Add a Navigation menu links for 'user' and $this->admin_user.
// Although it may be faster to manage these links via low-level API
......
......@@ -1623,12 +1623,6 @@ function user_menu() {
'page arguments' => array(1),
'access callback' => 'user_view_access',
'access arguments' => array(1),
// By assigning a different menu name, this item (and all registered child
// paths) are no longer considered as children of 'user'. When accessing the
// user account pages, the preferred menu link that is used to build the
// active trail (breadcrumb) will be found in this menu (unless there is
// more specific link), so the link to 'user' will not be in the breadcrumb.
'menu_name' => 'navigation',
);
$items['user/%user/view'] = array(
......@@ -1728,6 +1722,17 @@ function user_menu_link_alter(&$link) {
}
}
/**
* Implements hook_menu_breadcrumb_alter().
*/
function user_menu_breadcrumb_alter(&$active_trail, $item) {
// Remove "My account" from the breadcrumb when $item is descendant-or-self
// of system path user/%.
if (isset($active_trail[1]['module']) && $active_trail[1]['module'] == 'system' && $active_trail[1]['link_path'] == 'user' && strpos($item['path'], 'user/%') === 0) {
array_splice($active_trail, 1, 1);
}
}
/**
* Implements hook_translated_menu_link_alter().
*/
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment