function _megamenu_get_menu_tree in Megamenu 7
Same name and namespace in other branches
- 6.2 megamenu.utilities.inc \_megamenu_get_menu_tree()
- 6 megamenu.utilities.inc \_megamenu_get_menu_tree()
Retrieve a menu and pre-style before theming.
This function currently removes all "hidden" items, which could be handled in the single iteration of the theme function. But, I forsee a need for other prep work that might be simmplfied with this second function
Will be used in the future to add/alter attributes prior to theming
Parameters
$menuname: The name of the menu to extract
Return value
The pre-styled menu tree
1 call to _megamenu_get_menu_tree()
- megamenu_theme_menu_tree in ./
megamenu.module - Theme a menu tree.
File
- ./
megamenu.utilities.inc, line 50 - Helper/utility functions for Megamenu.
Code
function _megamenu_get_menu_tree($menuname) {
$menutree = menu_tree_all_data($menuname);
// Contains active trail.
$menutree_page = menu_tree_page_data($menuname);
foreach ($menutree as $tier_1_key => $tier_1_item) {
if ($menutree_page && $menutree_page[$tier_1_key]['link']['in_active_trail']) {
$menutree[$tier_1_key]['link']['in_active_trail'] = TRUE;
}
if ($tier_1_item['link']['hidden'] == 1 || empty($tier_1_item['link']['link_title'])) {
unset($menutree[$tier_1_key]);
}
elseif ($tier_1_item['below']) {
foreach ($tier_1_item['below'] as $tier_2_key => $tier_2_item) {
if ($menutree[$tier_1_key]['below'][$tier_2_key]['link']['in_active_trail']) {
$menutree[$tier_1_key]['below'][$tier_2_key]['link']['in_active_trail'] = TRUE;
}
if ($tier_2_item['link']['hidden'] == 1 || empty($tier_2_item['link']['link_title'])) {
unset($menutree[$tier_1_key]['below'][$tier_2_key]);
}
else {
if ($tier_2_item['below']) {
foreach ($tier_2_item['below'] as $tier_3_key => $tier_3_item) {
if ($menutree[$tier_1_key]['below'][$tier_2_key]['below'][$tier_3_key]['link']['in_active_trail']) {
$menutree[$tier_1_key]['below'][$tier_2_key]['below'][$tier_3_key]['link']['in_active_trail'] = TRUE;
}
if ($tier_3_item['link']['hidden'] == 1 || empty($tier_3_item['link']['link_title'])) {
unset($menutree[$tier_1_key]['below'][$tier_2_key]['below'][$tier_3_key]);
}
elseif ($tier_3_item['below']) {
unset($menutree[$tier_1_key]['below'][$tier_2_key]['below'][$tier_3_key]['below']);
}
}
// end level 3 loop
}
}
}
// end level 2 loop
}
}
// end level 1 loop
return $menutree;
}