Программно отобразить / изменить ссылку меню - PullRequest
2 голосов
/ 09 сентября 2010

Когда на сайт заходит анонимный пользователь, последний элемент в Первичных ссылках должен сказать «Логин». Тем не менее, если они вошли в систему, он должен сказать учетной записи.

Какой самый простой способ добиться этого в коде?

1 Ответ

4 голосов
/ 09 сентября 2010

Я выполняю это, используя модуль me aliases , чтобы сгенерировать один единственный путь для страницы учетной записи вошедшего в систему пользователя (например, user/me) и добавив user/me и user/login к меню.

Если бы вы хотели сделать это программно, вы бы использовали menu_link_save():

$account = array(
  'link_path' => 'user/me',
  'link_title' => t('Account'),
  'weight' => 100,
);

$login = array(
  'link_path' => 'user/login',
  'link_title'=> t('Login'),
  'weight' => 100,
);

menu_link_save($account);
menu_link_save($login);

Из-за того, как Drupal обрабатывает разрешения меню, вошедший в систему пользователь не увидит Вход в систему (вошедшие в систему пользователи не имеют доступа к user/login), но увидят Аккаунт , и вошедшие в систему пользователи увидят Логин , но не увидят Аккаунт (анонимные пользователи не имеют доступа к user/me).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...