首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据登录的用户更改Drupal模块中的选项卡名。

根据登录的用户更改Drupal模块中的选项卡名。
EN

Stack Overflow用户
提问于 2016-10-06 17:25:20
回答 1查看 65关注 0票数 0

在构建在Drupal上的Intranet上工作,在那里我得到了一个带有两个选项卡的模块。

有两种类型的用户,管理和非管理员。我喜欢更改选项卡的名称,这取决于谁正在查看它。

目前我得到的是:

代码语言:javascript
复制
function lessons_learned_menu(){
...
  $items['lessons-learned/projects/viewAll'] = array(
    'title' => 'View All Projects - LL',
    'description' => 'Review page that lists projects that are currently open.',
    'page callback' => 'pmo_lessons_learned_projects_viewAll',
    'access arguments' => array('Access pmo_lessons_learned'),
    'type' => MENU_LOCAL_TASK
  );
...

访问参数“access _ The _learned”,每个人都有(包括管理员)和“管理员pmo_lessons_learned”,只有管理员有。

一些没用的东西:

代码语言:javascript
复制
if(!user_access("Administer pmo_lessons_learned")){    
   $items['lessons-learned/projects/viewAll'] = array(
     'title' => 'View All Projects - LL',
     'description' => 'Review page that lists projects that are currently open.',
     'page callback' => 'pmo_lessons_learned_projects_viewAll',
     'access arguments' => array('Access pmo_lessons_learned'),
     'type' => MENU_LOCAL_TASK
   );
}
else
{
    $items['lessons-learned/projects/viewAll'] = array(
      'title' => 'Review Projects',
      ...
}

当我尝试调试它时,我总是将用户作为Admin (当它是非Admin),因此每次都使用every条件。

因此,如果用户不是Admin,我喜欢更改选项卡的名称,反之亦然。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-06 22:02:17

调用hook_menu一次以生成和缓存菜单项,并且在清除缓存之前不应该再次运行。这个钩子由Drupal 1 (admin)调用,这解释了为什么user_access("Administer pmo_lessons_learned")返回true

但是,可以在菜单项定义中使用'title callback'配置来生成带有函数的标题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39902184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档