I want to assign a specific menu in left sidebar block, based on the node type of the page currently being displayed. I think it should look something like this, but I am stuck.
function my_module_nodeapi(&$node, $op) {
switch ($op) {
case 'view':
if ($node->type == "large_reptiles")
{
//menu_set_active_menu_name('menu_rept开发者_运维知识库ile_menu');
//menu_set_active_item('menu_reptile_menu');
}
break;
}
}
You can't use hook_nodeapi
for that. You should instead create the block yourself in a module and based on the node print the menu.
function hook_block($op = 'list', $delta = 0, $edit = array()) {
switch ($op) {
case 'view':
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
}
if (!empty($node) && node->type == '...') {
// Theme the menu you want
}
...
else {
// Provide a default option
}
....
}
}
精彩评论