【问题标题】:Drupal: Create menu item for a viewDrupal:为视图创建菜单项
【发布时间】:2010-09-20 23:25:33
【问题描述】:

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

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

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 中的参数。

【问题讨论】:

    标签: drupal-6 drupal-views drupal-routes


    【解决方案1】:

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

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

    更新

    不必在每次创建或删除节点时都重新构建菜单系统,这不会非常可扩展,您可以改为使用hook_nodeapi 创建新菜单项,并在删除时将其删除。

    【讨论】:

    • 好吧,也许我解释得不好:)。我有一个内容类型:单元,可以保留。对于我创建的每个单元,我想生成一个菜单项(我可以在节点保存或更新时进行菜单重建)。菜单应链接到视图,节点 ID(单位)作为 url 中的参数。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我找到了一种非常简单的方法,我只是创建了一个视图块,它使用一些过滤器创建链接。

      简单而正是我需要的,似乎无法理解为什么我没有早点想到这一点

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-11
        • 2017-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多