Как скрыть блок от администратора в Drupal

18 июля 2014 - 16:47

По умолчанию в Друпале можно ограничить видимость блока по ролям пользователей. Например, выводить блок только для анонимных посетителей. Но часто возникает задача - выводить блок для пользователей всех ролей, кроме администраторов сайта. Вот самый простой и очевидный способ решения данной задачи:

  1. Включаем модуль PHP Filter ядра Drupal
  2. В настройках видимости нужного блока по страницам выбираем опцию "Если введённый PHP-код возвращает значение TRUE"
  3. Вводим следующий код:
        <?php
          global $user;
          return in_array('administrator', $user->roles) ? FALSE : TRUE;
        ?>
     

Задача решена. Любопытно, что такой мощный модуль как Context с ней не справляется. По крайней мере мне это не удалось.