php - add css class to "main menu" (drupal, integration with columnal grid system) -
i have question you.
i'm trying make website drupal 7, it's done except little problems, need first level of main menu had custom css classes in order integrate columnal, way print main menu:
<?php print theme( 'links__system_main_menu', array( 'links' => $main_menu, 'attributes' => array( 'id' => 'main-menu', 'class' => array('menu') ) ) ); ?>
and get:
<ul id="main-menu" class="menu"> <li class="menu-nnn first active"> <a href="url" title="" class="active">home</a> </li> <li class="menu-nnn"> <a href="url">click me</a> </li> <li class="menu-nnn"> <a href="url">click me</a> </li> <li class="menu-nnn"> <a href="url">click me</a> </li> <li class="menu-nnn last"> <a href="url">click me</a> </li> </ul>
i need first level of main menu has class "col_1":
<ul id="main-menu" class="menu"> <li class="menu-nnn first .col_1 active"> <a href="url" title="" class="active">home</a> </li> <li class="menu-nnn .col_1"> <a href="url">click me</a> </li> <li class="menu-nnn .col_1"> <a href="url">click me</a> </li> <li class="menu-nnn .col_1"> <a href="url">click me</a> </li> <li class="menu-nnn .col_1 last"> <a href="url">click me</a> </li> </ul>
the layout this:
/**************************************************************************************** * * .row * * * ********************************************************************************* * * * #logo.col_5 * * .pre_1| .col_5 |.suf_1 * * * * * * | | * * * * * * | | * * * * * * |__________________________________| * * * * *mar* |.col_1|.col_1|.col_1|.col_1|.col_1| * * * * *gin*padding| menu1| menu2| menu3| menu4| menu5|padding* * *mar*********************************************************************************mar* *gin* *gin* ****************************************************************************************/ //i'm expecting have 5 links in main menu
maybe can set width , margin manually css think isn't right approach, so, "using css set properties every sub element" won't work, try using "mytheme_menu_link" adds properties menus main menu, won't work too.
so question is:
is there way add css classes first level of main menu in drupal?
if looking achieve same goal own module or theme's template.php file, can use own implementation of drupal's theme_menu_link()
sample code:
function [theme_or_module]_menu_link(array $variables) { $element = $variables['element']; $sub_menu = ""; $element['#attributes']['class'][] = "col_1"; if ($element['#below']) { $sub_menu = drupal_render($element['#below']); } $output = l($element['#title'], $element['#href'], $element['#localized_options']); return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n"; }
Comments
Post a Comment