'; // Cleaning 'hidden' items foreach ($menu as $key => $menu_item) { if ($menu_item['link']['hidden']) { unset($menu[$key]); continue; } if ($menu_item['link']['has_children']) { foreach ($menu_item['below'] as $key_sub => $menu_item_sub) { if ($menu_item_sub['link']['hidden']) { unset($menu[$key]['below'][$key_sub]); } } } } // Counting items for 'first' and 'last' classes $cpt = 0; $num_items = count($menu); foreach($menu as $menu_item) { $link = $menu_item['link']; // Reset extra_classes for each item $extra_classes = array($item_class); if($link['has_children']) { if (is_array($trail) && in_array($link['mlid'], $trail)) { $display = 'block'; $over_menu_default = $link['mlid']; } else { $display = 'none'; } } if (is_array($trail) && in_array($link['mlid'], $trail)) { $link['in_active_trail'] = TRUE; } if ($cpt == 0) { $extra_classes[] = 'first'; } if ($cpt == $num_items - 1) { $extra_classes[] = 'last'; } $output .= theme('dynamic_persistent_menu_menu_item', $link, implode(' ', $extra_classes), 'dynamic-persistent-menu-menu'.$link['mlid']); $cpt++; // Submenu if ($menu_item['link']['has_children']) { // same count for first/last $cpt_sub = 0; $num_items_sub = count($menu_item['below']); $submenu_items =''; foreach($menu_item['below'] as $submenu_item) { $extra_classes_sub = array($sub_item_class); $link2 = $submenu_item['link']; if (is_array($trail) && in_array($link2['mlid'], $trail)) { $link2['in_active_trail'] = TRUE; } if ($cpt_sub == 0) { $extra_classes_sub[] = 'first'; } if ($cpt_sub == $num_items_sub - 1) { $extra_classes_sub[] = 'last'; } $submenu_items .= theme('dynamic_persistent_menu_menu_item', $link2, implode(' ', $extra_classes_sub), 'dynamic-persistent-menu-sub-menu-item'.$link2['mlid']); $cpt_sub++; } if ($submenu_items !='') { $submenu .= ''; } } } $output .= ''; $output .= $submenu; drupal_add_js("overMenuDefault = 'dynamic-persistent-menu-menu". $over_menu_default ."';", 'inline'); drupal_add_js("subMenuTimeout = $timeout;", 'inline'); drupal_add_js(drupal_get_path('module', 'dynamic_persistent_menu') .'/dynamic_persistent_menu.js'); return $output; }