Drupal-根据节点类型将菜单分配给块
我想根据当前显示的页面的节点类型,在左侧边栏块中指定一个特定的菜单。我想应该是这样的,但我被卡住了Drupal-根据节点类型将菜单分配给块,drupal,drupal-navigation,Drupal,Drupal Navigation,我想根据当前显示的页面的节点类型,在左侧边栏块中指定一个特定的菜单。我想应该是这样的,但我被卡住了 function my_module_nodeapi(&$node, $op) { switch ($op) { case 'view': if ($node->type == "large_reptiles") { //menu_set_active_menu_name('menu_reptile_menu');
function my_module_nodeapi(&$node, $op) {
switch ($op) {
case 'view':
if ($node->type == "large_reptiles")
{
//menu_set_active_menu_name('menu_reptile_menu');
//menu_set_active_item('menu_reptile_menu');
}
break;
}
}
你不能用
hook\u nodeapi
来做这个。您应该在模块中自己创建块,并基于节点打印菜单
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
}
....
}
}
谢谢你的及时回复!如果节点以/node_name而不是/node/9999的形式出现呢?是否有API将菜单分配给块?@ernie您可以使用模块更改url的外观,但Drupal将始终在内部将节点映射为node/[nid]。