4

如何编辑在 drupal 的默认用户个人资料页面上找到的链接选项卡?我试图避免必须创建一个 user_profile.tpl.php 文件并从头开始重建整个配置文件。如果有更简单的方法可以做到这一点,我宁愿这样做。但是,如果我被迫创建自定义模板,我该如何控制配置文件的菜单选项卡?我还没有找到任何解释该部分的文档。

4

2 回答 2

2

编辑

我没有发现您想要对用户配置文件选项卡进行通用修改,而不一定要删除它们。我已经修改了我的代码,以提供几个不同的示例来说明如何修改选项卡。

编辑 2

删除了user_access()对未设置的检查,因为它只会在菜单重建期间检查。access callback改为添加示例。


您可以在自定义模块中使用hook_menu_alter()and执行此操作unset()

function mymodule_menu_alter(&$items) {
  // If you have the Devel module installed, uncomment to retrieve list
  // of registered menu items to figure out what to unset.
  // kpr($items);

  // Change the name of the Edit tab
  $items['user/%user_category/edit']['title'] = t('Awesome edit!');

  // Disable the user edit tab, but don't disable the page if you go navigate 
  // directly to it
  // @see http://api.drupal.org/api/function/hook_menu/6 for other types
  $items['user/%user_category/edit']['type'] = MENU_CALLBACK;

  // Only allow people with administer site configuration permissions to
  // access the user edit and user edit account tabs.
  $items['user/%user_category/edit']['access callback'] = 'user_access';
  $items['user/%user_category/edit']['access arguments'] = array('administer site configuration');
  $items['user/%user_category/edit/account']['access callback'] = 'user_access';
  $items['user/%user_category/edit/account']['access arguments'] = array('administer site configuration');

  // Completely disable the user edit tab, even if you go directly to it
  // This affects all users, including user 1.
  unset($items['user/%user_category/edit']);
  unset($items['user/%user_category/edit/account']);
}

$items每个菜单项都使用数组注册到 Drupal 。启用此模块后,重建缓存并修改选项卡。

于 2010-08-02T21:13:23.137 回答
1

您可以使用Tab Tamer模块来编辑 Drupal 出现在用户个人资料页面中的默认链接选项卡。

于 2014-03-25T08:23:16.480 回答