[Решено] Темизация меню в виде шаблона типа menu-name-tpl.php

Аватар пользователя kiev1 kiev1 4 июня 2009 в 1:24

подскажите пожалуйста как назвать шаблон для темизации меню, в 5-м было понятно, в 6-м все испортили и инструкции нигде нет (((

Комментарии

Аватар пользователя цщкв цщкв 4 июня 2009 в 15:31

По-моему через шаблон нельзя, только через функцию. Только блок с меню
через block-menu.tpl.php или block-menu-name.tpl.php

Аватар пользователя kiev1 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 klim 23 февраля 2010 в 17:25

Странно когда нахожусь на главной странице, то все пункты меню имеют корректные ссылки.
как только захожу по одному из этих пунктов, у меня все адреса в пунктах становятся типа

почему дописывается лишний раз /node/ ?

Аватар пользователя klim 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 klim 18 марта 2010 в 23:10

Использую пример, указанный выше, становится понятно, что надо какой-то другой способ.

1. Активный пункт меню не выделяется
2. Не работают синонимы (вместо синонима указана ссылка типа node/xxx)

Как реализован обычный блок меню? Там и синонимы и выделение активного пункта работает.

Аватар пользователя fit fit 18 августа 2010 в 0:18

+1 не работает ссылка типа в ссылке выводит прямо её. Не выделает активный пункт. Не цепляет синонимы.

Есть что-то более универсальное?

Аватар пользователя klim klim 12 сентября 2010 в 17:00

fit wrote:
+1 не работает ссылка типа в ссылке выводит прямо её. Не выделает активный пункт. Не цепляет синонимы.

Есть что-то более универсальное?

Я делаю как-так Smile


<?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 klim 25 сентября 2010 в 23:28
<?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 чтобы кастомизировать вывод меню?