例如,我有"node/31".如果查看node/31,我希望drupal将菜单活动项设置为"galleries/lastgallery".怎么做?
<?php
function custom_nodeapi (&$node, $op, $a3 = NULL, $a4 = NULL){
if ($op == 'view' && $node->nid == 31) {
???
}
}
?>
Run Code Online (Sandbox Code Playgroud)
更新:我知道我可以使用menu_set_active_item.但在这种情况下,将不会显示选项卡(查看/编辑等选项卡).我相信它应该完成menu_set_active_trails,或者可能是menu_get_item/ menu_set_item某种方式,但我无法确切地说.
出于类似的目的,我用过menu_set_item().您应该保留$path参数NULL并使用菜单项'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);
}
}
}
Run Code Online (Sandbox Code Playgroud)