未登录时在用户菜单中显示“登录”


8

我问自己,在用户菜单中隐藏“我的帐户”和“注销”的代码在哪里?只是好奇,可以从该代码中学习。如果您想知道类似的东西,有什么方法可以知道在哪里搜索?

我在此菜单中添加了“登录”链接,当没有人登录时,我想隐藏此链接。

Answers:


13

当链接发生问题时,您需要在代码中查找hook_menu()。然后,您需要猜测它所在的模块。在这种情况下,请查看核心用户模块:

function user_menu() {
  $items['user/login'] = array(
    'title' => 'Log in',
    'access callback' => 'user_is_anonymous',
    'type' => MENU_DEFAULT_LOCAL_TASK,
  );

  return $items;
}

注意'access callback' => 'user_is_anonymous',行。这意味着您只能在匿名(即未登录)的情况下执行此操作。这意味着您应该只能够使用“用户/登录”作为路径进行菜单输入,并且仅当您注销时该链接才会显示。


16

您可以将菜单链接添加到user/login,该菜单链接的访问回调可验证它仅显示给匿名用户。就像user/logout只对已登录的用户可见。

如其他答案所述,这些callbacks()的定义位于 user_menu()


+1也是这样user/register-通过菜单UI以通常的方式创建链接,该链接仅对未自动登录的用户显示。
user56reinstatemonica8 '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.