Drupal 7 - добавление имен классов в блок меню <ul>

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

2 ответа

Решение

Почему бы вам не добавить нужные классы через JavaScript?!

Пример:

jQuery("#MY_MENU_WRAPPER ul.menu").addClass("inline");

Если это так, попробуйте следующий код в файле template.php вашей темы

function return_menu_markup($menu_name, $attributes)
{
    $items = array();
    $menu_tree = menu_tree_all_data($menu_name);
    $menu_tree_output = menu_tree_output($menu_tree);

    foreach($menu_tree_output as $item_id => $item_data)
    {
        if(is_numeric($item_id) && is_array($item_data))
        {
            $items[] = l('<span>' . $item_data['#title'] . '</span>', $item_data['#href'], array(
                    'attributes'    => $item_data['#attributes'],
                    'html'      => TRUE,
                )
            );
        }
    }
    return theme('item_list', array('items' => $items, 'type' => 'ul'));
}

Затем в любом месте шаблона просто сделайте следующее:

$attributes = array();
$attributes['id'] = "MY_MENU_ID";
attributes['class'] = array('MY_CLASS_1', 'MY_CLASS_2', 'MY_CLASS_3');
return_menu_markup("main-menu", $attributes);

Надеюсь, вы найдете то, что нужно:)

-Muhammad.

Ты можешь использовать template.php в папке вашей темы используйте hook:

function THEMENAME_menu_tree__menu_main_navigation($variables){
    return "<ul class=\"inline\">\n" . $variables['tree'] ."</ul>\n";
}

также обратите внимание на это menu_main_navigation путь к меню, остальные значения всегда одинаковы. Несколько раз удалите кеш, может быть, он хочет работать немедленно.

Другие вопросы по тегам