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

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

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;
}

@编辑

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

有帮助吗?

解决方案 3

我找到了一种非常简单的方法,我刚刚创建了一个与某些过滤器建立链接的视块。

简单而确切的我所需要的,似乎不明白为什么我没有想到这一点

其他提示

我不确定您要做什么,但是如果您的目标是创建菜单项,而不是在自定义模块中定义的新页面,则应在Drupal中使用菜单系统。您可以创建指向网站上存在的任何URL的菜单项。
对于节点,这特别容易,因为您可以直接在节点编辑/创建表单中进行此操作。

Drupal缓存了Menues,因此您无法创建带有动态零件的菜单项,例如用户ID等。如果您想执行此类操作,则应创建一个常见回调,将用户重定向到动态URL或根据用户显示内容。

更新

不必每次创建或删除节点时都需要重建菜单系统,这不会是可扩展的,而是可以创建新的菜单项,并使用 hook_nodeapi, 并在删除时将其删除。

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

http://jan.tomka.name/blog/programmatically-creating-menu-items-drupal

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top