我想创建一个动态菜单,从某个节点类型中获取它的项目。我想我可以通过创建标题视图并将其放入块中来实现。但是,当有人点击其中一个标题时,我想突出显示它,因此需要一种方法来向链接添加活动类。我知道Drupal会自动为菜单执行此操作,但我可以根据视图进行菜单吗?
答案 0 :(得分:0)
我不确定您对“动态菜单”的要求,但是视图标题的替代方法可能是设置自定义菜单,然后在创建这些节点时,将它们设置为节点编辑表单中的该菜单。然后在块中显示该菜单并且您应该突出显示所需的活动项目。
答案 1 :(得分:0)
为什么不将Andrews的想法与hook_form_alter结合使用?像这样的东西会起作用:
假设您的内容类型名为“mycontent”:
在您的内容类型设置下,将允许的菜单父级设置为仅包含您想要的菜单,我们将其称为“自定义”。在您的模块文件中添加以下代码:
mymodule_form_alter(&form, &$form_state, $form_id){
if($form_id=="mycontent_node_form"){
$form['menu']['enabled']['#default_value'] = 1;
$form['menu']['link']['parent']['#default_value'] = "menu-custom:0";
}
}
所以,$ form_id应该等于“[my_content_type] _node_form”,而parent的默认值应该等于“menu- [my_menu]:0”
如果您担心用户不将其内容添加到菜单中,此行将取消他们对表单项的控制:
$form['menu']['#disabled']=true;