我正在创建一个让您的用户添加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;
}
答案 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
,则代码应该。
如果您的首页(即视图或面板)有其他内容,则不适用。