使用选项卡创建drupal 6模块

时间:2010-11-02 13:20:38

标签: drupal tabs drupal-modules

我正在创建一个让您的用户添加Feed的模块。 所以我希望我的代码提供可以在主题层覆盖的选项卡。

我认为这可以通过hook_menu完成:

$items['tab_add_feed'] = array(
  'title' => 'Add Feed',
  'page callback' => 'xml_parser_add_feed',
  'access callback' => 'user_access',
  'access arguments' => array('manage own feeds'),
  'type' => MENU_LOCAL_TASK,
);
像上面这样的东西。 但是我在网站的正面使用它。

如何在drupal方式的页面顶部添加标签页或链接?

//修改

目前没有任何标签,也许我必须让它们可见?

通过将<a href="xml_parser/add_feed">add feed</a>添加到主页面回调函数来修复它 但这是丑陋的,硬编码而不是主题。等待更好的解决方案。

//修改

这是我现在使用的代码

function xml_parser_menu() {
    $items = array();

    $items['xml_parser'] = array(
            'path' => 'xml_parser',
            'title' => t('Feed'),
            'description' => t('Add/edit feeds'),
            'page callback' => 'xml_parser_manage_overview', 
            'access callback' => 'user_access', // get user access
            'access arguments' => array('manage own feeds'), // check user if premission is set
            'type' => MENU_NORMAL_ITEM,
            'menu_name' => 'primary-links', // add to primary menu
    );

    $items['xml_parser/add_feed'] = array(
            'path' => 'xml_parser/add_feed',
            'title' => 'Add Feed',
            'page callback' => 'xml_parser_add_feed',
            'access callback' => 'user_access',
            'access arguments' => array('manage own feeds'),
            //'access' => user_access('maintain own subscriptions'),
            'type' => MENU_LOCAL_TASK,
    );
    return $items;
}

2 个答案:

答案 0 :(得分:2)

我认为该项的名称类似于'user /%/ add_feed',%参数是用户ID。此外,访问回调拼写错误,应为user_access。这应该在用户配置文件页面上为用户创建一个选项卡。您还可以执行node /%/ add_feed将选项卡添加到节点。

在开发此模块时,您可能会发现使用它也很有用:

function mymodule_init() {
   cache_clear_all();
   menu_router_build();
}

直到你直接拿到菜单。

如果您只想向页面添加任意标签以添加Feed,则可能是自主菜单或主题链接。我需要更多地了解您尝试提供的Feed的上下文以及用户如何订阅。

答案 1 :(得分:0)

您应该可以在首页添加标签页。请记住,您网站的首页不是真正的“/”,默认情况下是“/ node”(除非您更改了它)。

我只是在猜测,因为我没有尝试过,但如果您将$ item中的标签键更改为node/tab_add_feed,则代码应该

如果您的首页(即视图或面板)有其他内容,则不适用。