Issue
For example, I have "node/31". And I want drupal to set menu active item to "galleries/lastgallery" if node/31 is viewed. How to do it?
<?php
function custom_nodeapi (&$node, $op, $a3 = NULL, $a4 = NULL){
if ($op == 'view' && $node->nid == 31) {
???
}
}
?>
Updated:
I know I can use menu_set_active_item. But in this case tabs (View/Edit etc. tabs) will be not displayed. I believe it should be done with menu_set_active_trails, or may be menu_get_item/menu_set_item somehow, but I can't figure how exactly.
Solution
For similar purpose, I used menu_set_item(). You should leave the $path argument NULL and use the menu item for the internal path of 'galleries/lastgallery' as $router_item.
function custom_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($op == 'view' && $node->nid == 31) {
$path = drupal_get_normal_path('galleries/lastgallery');
if($path && $menu_item = menu_get_item($path)) {
menu_set_item(NULL, $menu_item);
}
}
}
Answered By - Pierre Buyle Answer Checked By - Senaida (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.