[Решено] Темизация меню в виде шаблона типа menu-name-tpl.php
Прислано: kiev1
ср, 03/06/2009 - 21:24
подскажите пожалуйста как назвать шаблон для темизации меню, в 5-м было понятно, в 6-м все испортили и инструкции нигде нет (((
- kiev1's blog
- Для комментирования войдите или зарегистрируйтесь
По-моему через шаблон нельзя, только через функцию. Только блок с меню
через 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 '<a href="'. $item['href'] .'" class="menu1">'. $item['title'] .'</a><br><br>';
}
?>все просто, но не стандартно (
- Для комментирования войдите или зарегистрируйтесь
вопросы с многоязыковостью остаются...
- Для комментирования войдите или зарегистрируйтесь
Странно когда нахожусь на главной странице, то все пункты меню имеют корректные ссылки.
как только захожу по одному из этих пунктов, у меня все адреса в пунктах становятся типа
http://site/node/node/xxx
почему дописывается лишний раз /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 не работает ссылка типа в ссылке выводит прямо её. Не выделает активный пункт. Не цепляет синонимы.
Есть что-то более универсальное?
- Для комментирования войдите или зарегистрируйтесь
+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 чтобы кастомизировать вывод меню?
- Для комментирования войдите или зарегистрируйтесь



Комментарии