Ограничение видимости блоков

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

Аватар пользователя PC_M@niac PC_M@niac 22 июля 2006 в 13:07

Хочу назначить видимость некоторых блоков определённым ролям пользователей. Понимаю что это нужно сделать через "Показать, если введенный PHP-код возвращает TRUE (PHP-режим, только для экспертов)." но вот какой код написать. Я не знаю Drupal API. Подскажите плз.

Комментарии

Аватар пользователя Natalie Natalie 22 июля 2006 в 18:14

Где-то в Handbooks на drupal.org были примеры.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя PC_M@niac PC_M@niac 23 июля 2006 в 0:59

Почитал я хэндбук и нарыл вот что:
здесь http://drupal.org/node/64854 приводится пример как ограничивать вывод блоков для зарегистрированных пользователей.

<?php
global $user;
return (bool) $user->uid;
?>

Осталось только узнать как определить, входит ли пользователь в определённую групу или нет. Кто подскажет?

Аватар пользователя PC_M@niac PC_M@niac 23 июля 2006 в 3:13

Спасибо, http://drupal.org/node/27690 только что сам нашёл и только хотел сюда запостить Smile
А http://drupal.org/node/18018 не очень удобно да и нет необходимости в таком функционале. Был-бы это модуль - ещё куда ни шло, а патчи - дело неблагодарное, потом замучаешься при переходе на новую версию ядра.

Аватар пользователя Natalie Natalie 23 июля 2006 в 3:25

Этот патч вроде должен входить в следующую версию.
Давно, кстати, пора.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя aksa aksa (не проверено) 26 июня 2007 в 10:37

у меня проблема с отображением блоков в определенных категориях страниц...
почему-то $node не видно из скрипта

<?php
global $node;
foreach ($node->taxonomy as $term) {
if ($term->name == "Ладья") return true;
}
?>

- ругается, что $node не существует...

Аватар пользователя _devid_ _devid_ 26 марта 2010 в 9:49

Я только для одной роли сделал так:

<?php
global $user;
if (
in_array('authenticated user',$user->roles// если в списке ролей есть автор. пользователь
   
&&  count($user->roles) == 1)                      // и список ролей только из 1 роли
  
return TRUE;
else
 return 
FALSE;
?>
Аватар пользователя olk olk 26 марта 2010 в 10:55

Или я туплю или ... Smile А что у вас разве в настройках блока нет секции
«Настройки видимости для ролей»
Показать блок определенным ролям:

Аватар пользователя olk olk 26 марта 2010 в 10:57

"olk" wrote:
Опубликовано olk в пт, 26/03/2010 - 11:25.
olk

Или я туплю или ... Smile А что у вас разве в настройках блока нет секции
«Настройки видимости для ролей»
Показать блок определенным ролям:


Все таки это я с утра туплю Smile не посмотрел на дату первого поста и версию Друпал