Drupal 6 Drupal:为视图创建菜单项

Drupal 6 Drupal:为视图创建菜单项,drupal-6,drupal-views,drupal-routes,Drupal 6,Drupal Views,Drupal Routes,我正在创建一个小型预订系统。可以创建可以保留的节点类型,如投影仪。 我有一个正常显示的日历视图。我为节点引用添加了一个参数,但在定义页面回调时遇到了问题。 有人能帮我吗 现在我想为不同的节点创建菜单项 function your_module_menu() { $nodeid //semantic, node is loaded right $items['reservate/nodeid/$year-w$week'] = array( // semantic, url is built

我正在创建一个小型预订系统。可以创建可以保留的节点类型,如投影仪。 我有一个正常显示的日历视图。我为节点引用添加了一个参数,但在定义页面回调时遇到了问题。 有人能帮我吗

现在我想为不同的节点创建菜单项

function your_module_menu() {
$nodeid //semantic, node is loaded right
    $items['reservate/nodeid/$year-w$week'] = array( // semantic, url is built right
        'title' => t('Your Module Name'),
        'description' => t('Menu's description.'),
        'page callback' => 'page_callback_funtion',
        'page arguments' => array('page callback arguments'),
        'access callback' => 'your_module_access',           // the function that validates access based on the user's role(s).
        'access arguments' => array(array(role1', 'role2')), // list of roles authorized - note nested array.
        'type' => MENU_NORMAL_ITEM,
    );
    return $items;
}
@编辑


好吧,也许我没解释清楚:)。我有一个内容类型:unit,可以保留。对于我创建的每个单元,我想生成一个菜单项(我可以在节点保存或更新时重建菜单)。菜单应该链接到一个视图,在url中以节点id(单位)作为参数。

我不确定您到底想做什么,但是如果您的目标是创建一个菜单项,而不是在自定义模块中定义的新页面,那么您应该使用Drupal中的菜单系统。您可以创建指向站点上存在的任何url的菜单项。
对于节点,这尤其容易,因为您可以直接在节点编辑/创建表单中执行此操作

Drupal缓存菜单,因此您不能创建包含动态部分的菜单项,如用户id等。如果您想这样做,您应该创建一个通用回调,将用户重定向到动态url或根据用户显示内容

更新

不必在每次创建或删除节点时重新构建菜单系统(这将不会具有很强的可伸缩性),您可以只创建新的菜单项,并在删除时将其删除

  • 要创建它,您可以使用
  • 要删除它,您可以使用

我找到了一个非常简单的方法,我刚刚创建了一个视图块,它通过一些过滤器创建链接


简单而准确地说是我所需要的,我似乎无法理解为什么我没有更早地想到这一点

如果我理解正确,您将尝试在每次添加“unit”类型的新内容节点时自动创建一个菜单项。如果这是正确的,我建议使用模块规则和一小段PHP,在各种系统事件(如内容创建)上创建自定义菜单项。你可能会发现我写的关于这个主题的教程很有用:


想法很简单:在规则模块中为在节点创建或删除时触发的操作设置一个规则,并使用Google Torp提到的Drupal API调用来实际操作菜单项。

ok,也许我没有解释清楚:)。我有一个内容类型:unit,可以保留。对于我创建的每个单元,我想生成一个菜单项(我可以在节点保存或更新时重建菜单)。菜单应链接到视图,并在url中以节点id(单位)作为参数。