I'm working on a Fusion sub-theme named nebula. So the function is named nebula_menu_link .
/** * Manually add unique CSS classes to primary menu li elements * @staticvar int $item_id * @param type $variables * @return type */ function nebula_menu_link($variables) { $element = $variables['element']; static $item_id = 0; $element['#attributes']['class'][] = 'nv_' . (++$item_id); $sub_menu = $element['#below'] ? drupal_render($element['#below']) : ''; $output = l($element['#title'], $element['#href'], $element['#localized_options']); return '
Refer to line #11 that's where the meat of the function. The line adds a "nv_1" class to the first primary menu element. It should be easy to figure out that the succeeding elements would be "nv_2", "nv_3". That's the (++$item_id).
Here's how it would look when theme renders.
<ul class="menu"> <li class="first leaf nv_1"> <a href="/" class="active">Home</a> </li> <li class="leaf nv_2"> <a href="/content/about-us" title="">About Us</a> </li> <li class="leaf nv_3"> <a href="/content/solutions" title="">Solutions</a> </li> <li class="leaf nv_4"> <a href="/content/services">Services</a> </li> <li class="leaf nv_5"> <a href="/" title="" class="active">News</a> </li> <li class="leaf nv_6"> <a href="/" title="" class="active">Library</a> </li> <li class="last leaf nv_7"> <a href="/content/contact-us" title="">Contact</a> </li> </ul>
Now we can target individual li elements of the primary menu. Theme away!
No comments:
Post a Comment