Как показать блок зарегистрированным пользователям, но скрыть от других ролей?

Главные вкладки

Аватар пользователя kpv_dnepr@drupal.org kpv_dnepr@drupal.org 2 апреля 2013 в 14:43

Hello world))

Как показать блок зарегистрированным пользователям, но скрыть от других ролей?

Порылся на D.ORG, но решения не нашел, понял одно, реализуется php кодом в видимости блока, но каким?

Такое решение предлагают для D5

<?php
  
global $user;
  return ((
count($user->roles) == 1) && ($user->roles[1] == 'anonymous user' || $user->roles[2] == 'authenticated user'));
?>

Комментарии

Аватар пользователя CSoft CSoft 4 апреля 2013 в 19:33

Чекбоксами, надо полагать. Задавайте вопросы конкретнее. Что из моего ответа не ясно / не получается?

Аватар пользователя kpv_dnepr@drupal.org kpv_dnepr@drupal.org 10 апреля 2013 в 19:02

"CSoft" wrote:
Чекбоксами, надо полагать. Задавайте вопросы конкретнее. Что из моего ответа не ясно / не получается?

Любая роль, является зарегистрированным пользователем. Как показать блок зарегистрированным пользователям, но скрыть от других ролей?

Аватар пользователя CSoft CSoft 10 апреля 2013 в 20:12

Всё, дошло Smile

Решение в первом посте в общем-то тоже верное и для 6-ки.

Предлагаю следующее. В настройке "Показывать блок на определенных страницах" ставим режим "Показывать, если данный PHP-код возвращает TRUE" и вводим:

<?php
  return count($GLOBALS['user']->roles) == 1 && isset($GLOBALS['user']->roles[2]);
?>

Роль с id = 2 зарезервирована в системе для авторизованных пользователей, и если других ролей у активного в данный момент посетителя нет - блок будет показан.