Drupal - 修改视图添加到用户页面的选项卡

时间:2011-02-28 15:05:11

标签: drupal drupal-6 drupal-views

我使用视图(作为带有菜单标签设置的页面等)向用户页面添加了许多新标签。我现在想要做的是,如果被查看的用户是当前的登录用户,则删除它们。

在添加一些用户过滤之前,我的第一个问题是我似乎根本无法修改这些标签。我知道一般程序是使用HOOK_MENU_ALTER和(例如):

$items['user/%user/view']['type'] = MENU_CALLBACK;

这适用于原始标签,但不适用于添加了视图的标签,例如对于“文章”标签:

$items['user/%user/articles']['type'] = MENU_CALLBACK;

视图添加的标签是否与“普通”标签的处理方式不同?

干杯, 詹姆斯

2 个答案:

答案 0 :(得分:2)

首先,通过使它们成为MENU_CALLBACK,您将无法动态隐藏它们。您应该做的是将访问回调更改为您要检查当前用户的函数。

至于找不到标签的原因,请检查:

  • 没有菜单项 %views_arg而不是%user
  • 您模块的重量(在系统表中)大于视图的重量。由于视图使用相同的钩子,因此可能会在视图之前调用模块。

答案 1 :(得分:1)

我认为视图在hook_menu_alter()中添加了所有内容。要更改它,您需要在{system}表中为模块赋予比视图更高的权重。