[Решено] Темизация меню в виде шаблона типа menu-name-tpl.php
4 июня 2009 в 1:24
подскажите пожалуйста как назвать шаблон для темизации меню, в 5-м было понятно, в 6-м все испортили и инструкции нигде нет (((
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
По-моему через шаблон нельзя, только через функцию. Только блок с меню
через block-menu.tpl.php или block-menu-name.tpl.php
спасибо, так и сделал
меню называется menu-nav
файл создал block-menu-menu-nav.tpl.php
внутри файла код
<?php
$nav = menu_navigation_links('menu-nav');
foreach ($nav as $item) {
print ''. $item['title'] .'
';
}
?>
все просто, но не стандартно (
вопросы с многоязыковостью остаются...
Странно когда нахожусь на главной странице, то все пункты меню имеют корректные ссылки.
как только захожу по одному из этих пунктов, у меня все адреса в пунктах становятся типа
почему дописывается лишний раз /node/ ?
Ок, нашел баг, исправил в примере
<?php
$nav
= menu_navigation_links('menu-nav');foreach ($nav as $item) {
print '<a href="/'. $item['href'] .'" class="menu1">'. $item['title'] .'</a><br><br>';
}
?>
Почему-то не срабатывает block-menu.tpl.php. Есть какие-нибудь хитрости?
Использую пример, указанный выше, становится понятно, что надо какой-то другой способ.
1. Активный пункт меню не выделяется
2. Не работают синонимы (вместо синонима указана ссылка типа node/xxx)
Как реализован обычный блок меню? Там и синонимы и выделение активного пункта работает.
+1 не работает ссылка типа в ссылке выводит прямо её. Не выделает активный пункт. Не цепляет синонимы.
Есть что-то более универсальное?
Я делаю как-так
<?php
$pathname = $_SERVER['REQUEST_URI'];
list($blank,$path1,$path2,$other)=split("/",$pathname);
$nav = menu_navigation_links('menu-topmenu');
print
'<table class="menu"><tr>';foreach ($nav as $item) {
if (drupal_get_path_alias($item['href']) == $path1)
{
print '<td class="menu-active">';
print '<a href="/'.drupal_get_path_alias($item['href']).'">'. $item['title'] .'</a>';
}
else
{
print '<td class="menu-link">';
print '<a href="/'.drupal_get_path_alias($item['href']).'">'. $item['title'] .'</a>';
}
}
print '</tr></table>';
?>
синонимы подхватывает.
Ознакомьтесь с:
-l()
-theme('table')
<?php
$nav = menu_navigation_links('menu-topmenu');
?>
возвращает только верхний уровень (так и должно быть), но вот почему ничего не возвращает
<?php
$nav1 = menu_navigation_links('menu-topmenu',1);
?>
не понятно.
Нужно вывести меню целиком, но сделать изменения в классах на пунктах меню.
<?php
print theme('menu_tree', menu_tree('menu-left'));
?>
выводит меню в стандартном виде. подскажите что нужно расковырять и положить в template.php чтобы кастомизировать вывод меню?