kiev1 4 июня 2009 в 1:24 подскажите пожалуйста как назвать шаблон для темизации меню, в 5-м было понятно, в 6-м все испортили и инструкции нигде нет ((( Drupal6 Блог Войдите или зарегистрируйтесь, чтобы отправлять комментарии
цщкв 4 июня 2009 в 15:31 По-моему через шаблон нельзя, только через функцию. Только блок с меню через block-menu.tpl.php или block-menu-name.tpl.php
kiev1 4 июня 2009 в 19:09 спасибо, так и сделал меню называется menu-nav файл создал block-menu-menu-nav.tpl.php внутри файла код <?php $nav = menu_navigation_links('menu-nav'); foreach ($nav as $item) { print ''. $item['title'] .''; } ?> все просто, но не стандартно (
klim 23 февраля 2010 в 17:25 Странно когда нахожусь на главной странице, то все пункты меню имеют корректные ссылки. как только захожу по одному из этих пунктов, у меня все адреса в пунктах становятся типа http://site/node/node/xxx почему дописывается лишний раз /node/ ?
klim 23 февраля 2010 в 17:39 Ок, нашел баг, исправил в примере <?php $nav = menu_navigation_links('menu-nav'); foreach ($nav as $item) { print '<a href="/'. $item['href'] .'" class="menu1">'. $item['title'] .'</a><br><br>'; }?>
klim 18 марта 2010 в 23:10 Использую пример, указанный выше, становится понятно, что надо какой-то другой способ. 1. Активный пункт меню не выделяется 2. Не работают синонимы (вместо синонима указана ссылка типа node/xxx) Как реализован обычный блок меню? Там и синонимы и выделение активного пункта работает.
fit 18 августа 2010 в 0:18 +1 не работает ссылка типа в ссылке выводит прямо её. Не выделает активный пункт. Не цепляет синонимы. Есть что-то более универсальное?
klim 12 сентября 2010 в 17:00 fit wrote: +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>';?> синонимы подхватывает.
klim 25 сентября 2010 в 23:28 <?php$nav = menu_navigation_links('menu-topmenu'); ?> возвращает только верхний уровень (так и должно быть), но вот почему ничего не возвращает <?php$nav1 = menu_navigation_links('menu-topmenu',1); ?> не понятно. Нужно вывести меню целиком, но сделать изменения в классах на пунктах меню. <?phpprint theme('menu_tree', menu_tree('menu-left'));?> выводит меню в стандартном виде. подскажите что нужно расковырять и положить в template.php чтобы кастомизировать вывод меню?
Комментарии
По-моему через шаблон нельзя, только через функцию. Только блок с меню
через 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 чтобы кастомизировать вывод меню?