Drupal - назначить меню для блокировки на основе типа узла
Я хочу назначить конкретное меню в левом блоке боковой панели, основываясь на типе узла отображаемой в данный момент страницы. Я думаю, что это должно выглядеть примерно так, но я застрял.
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;
}
}
1 ответ
Решение
Вы не можете использовать hook_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
}
....
}
}