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
путь к меню, остальные значения всегда одинаковы. Несколько раз удалите кеш, может быть, он хочет работать немедленно.