function submenutree_nodeapi_view in Submenu Tree 6
Same name and namespace in other branches
- 5 submenutree.module \submenutree_nodeapi_view()
1 call to submenutree_nodeapi_view()
- submenutree_nodeapi in ./submenutree.module
- Implementation of hook_nodeapi().
File
- ./submenutree.module, line 221
Code
function submenutree_nodeapi_view(&$node, $op, $teaser, $page) {
if ($teaser == false && $page == true && ($node->submenutree_enable || $node->siblingmenutree_enable)) {
$mlid = 0;
foreach (module_implements('submenutree_mlid') as $module) {
$function = $module . '_submenutree_mlid';
if ($mlid = $function($node)) {
break;
}
}
if (!$mlid) {
$menu_name = variable_get('menu_default_node_menu', 'primary-links');
$mlid = db_result(db_query_range("SELECT mlid FROM {menu_links} WHERE link_path = 'node/%d' AND menu_name = '%s' AND module = 'menu' ORDER BY mlid ASC", $node->nid, $menu_name, 0, 1));
}
if (!$mlid) {
$mlid = db_result(db_query_range("SELECT mlid FROM {menu_links} WHERE link_path = 'node/%d' AND module = 'menu' ORDER BY mlid ASC", $node->nid, 0, 1));
}
if ($mlid) {
$item = menu_link_load($mlid);
$tree = menu_tree_page_data($item['menu_name']);
list($key, $curr) = each($tree);
while ($curr) {
if ($curr['link']['href'] == $item['href']) {
$my_tree = $curr['below'];
$parent_tree = $tree;
$curr = FALSE;
}
else {
if ($curr['below'] && $curr['link']['in_active_trail']) {
$tree = $curr['below'];
}
list($key, $curr) = each($tree);
}
}
if ($my_tree && $node->submenutree_enable) {
_submenutree_menutree_view($node, 'submenutree', $my_tree);
}
if ($parent_tree && $node->siblingmenutree_enable) {
_submenutree_menutree_view($node, 'siblingmenutree', $parent_tree);
}
}
}
}