Решение
Обратите внимание
Друпал выводит strict xhtml 1.1 и якоря вида <a name="anchor"></a> не работают.
Этот тег заменяетя тегом id в xhtml 1.1, который может быть использован для любого тега.
Например, <p id="anchor"></p> и на якорь можно сослаться как обычно: example.com#anchor
Варианты
- Указать полный URL
- Переопределить функцию вывода ссылок в меню
Указать полный URL
Якоря будут работать в ссылках меню, если указать полный URL (http://www.example.com/example#anchor), а не /example#anchor
Но полный путь делает сайт менее расширяемым и такое решение не всегда можно применить.
Переопределить функцию вывода ссылок в меню
Нужно переопределить функцию - в template.php вашей темы добавить:
function phptemplate_menu_item_link($item, $link_item) {
// Convert anchors in path to proper fragment
$path = explode('#', $link_item['path'], 2);
$fragment = !empty($path[1]) ? $path[1] : NULL;
$path = $path[0];
return l(
$item['title'],
$path,
!empty($item['description']) ? array('title' => $item['description']) : array(),
!empty($item['query']) ? $item['query'] : NULL,
$fragment,
FALSE,
FALSE
);
}
// Convert anchors in path to proper fragment
$path = explode('#', $link_item['path'], 2);
$fragment = !empty($path[1]) ? $path[1] : NULL;
$path = $path[0];
return l(
$item['title'],
$path,
!empty($item['description']) ? array('title' => $item['description']) : array(),
!empty($item['query']) ? $item['query'] : NULL,
$fragment,
FALSE,
FALSE
);
}
Использованные материалы
Using named anchors with menus
Полезные ссылки
Allow named anchor links (#) in menu path
Bookmark/Search this post with










