Свои классы для пунктов меню в блоке

Главные вкладки

Аватар пользователя AkeLLbl4 AkeLLbl4 26 февраля 2011 в 1:08

Имеем меню созданное собственноручно и помещенное в сайдбар, да и вообще любой регион на странице.
При таком выводе пунктам меню не присваиваются классы типа "menu-xxx", как при выводе main_menu через функцию в файле page.tpl.php
Подскажите каким образом можно присвоить пунктам меню свои классы? А точнее, что надо писать в template.php, потому что знаю что, надо переопределить через функцию темизации меню, вот только как для меня вопрос Sad

Комментарии

Аватар пользователя SplasH SplasH 26 февраля 2011 в 1:28

Как создано меню ? Если каждый элемент меню - элемент массива, то можно вывести так в page.tpl.php:

<?php
<?
  echo 
theme('links__system_main_menu', array(
    
'links' => $yours_menu,
    
'attributes' => array(
      
'class' => array('main-menu'),
    ),
    
'heading' => array(
      
'text' => t('Main menu'),
      
'level' => 'h2',
      
'class' => array('element-invisible'),
    ),
  );
?>

Лишнее можно убрать (attributes, heading, text, level, class);

Аватар пользователя AkeLLbl4 AkeLLbl4 26 февраля 2011 в 1:44

Повторяю меню собственными руками создано, а не main_menu.
Выводится через модуль "БЛОКИ"
В main_menu все и так зашибись, каждому li присваевается свой класс.
А в меню из блока li-шкам присваиваются классы leaf.

Аватар пользователя boneg boneg 26 февраля 2011 в 12:07

Ставь Nice Menus, в настройках отключи использование JavaScript и выводи через него свою менюшку. Он присваивает для любого меню класс машинного имени.

Аватар пользователя AkeLLbl4 AkeLLbl4 26 февраля 2011 в 14:10

пока что делаю это так:

                jQuery(document).ready(function() {
                        var menuItem = jQuery("#sidebar .menu li");
                        menuItem.removeClass();
                        menuItem.each(function(i) {
                                i++;
                                jQuery(this).addClass('item-'+i);
                        });
                });    

Сейчас посмотрим NiceMenus.
Надо посмотреть, через что в модуле задаются классы и применить у себя Smile

Аватар пользователя SplasH SplasH 1 марта 2011 в 2:45

"AkeLLbl4" wrote:
Повторяю меню собственными руками создано, а не main_menu.

Я понял что руками - я предложил вывести своё меню таким же образом, как и главное. Меню сформировано через пхп код, или через хтмл ?