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

Прислано: PC_M@niac

сб, 22/07/2006 - 09:07

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

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Natalie в сб, 22/07/2006 - 14: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 в сб, 22/07/2006 - 20:59.

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

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

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


Опубликовано Natalie в сб, 22/07/2006 - 22:57.

http://drupal.org/node/27690
А также патч
http://drupal.org/node/18018
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.


Опубликовано PC_M@niac в сб, 22/07/2006 - 23:13.

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


Опубликовано Natalie в сб, 22/07/2006 - 23:25.

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


Опубликовано PC_M@niac в сб, 22/07/2006 - 23:26.

Решил проблему вот таким кодом:

<?php
global $user;
if (is_array($user->roles) && in_array('admin', $user->roles)) {
  return TRUE;
} else return FALSE;
?>

Ограничив тем самым блок навигации для показа только роли admin.


Опубликовано aksa (гостевой логин) в вт, 26/06/2007 - 06:37.

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

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

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


Опубликовано _devid_ в пт, 26/03/2010 - 06:49.

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

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


Опубликовано olk в пт, 26/03/2010 - 07:55.

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


Опубликовано olk в пт, 26/03/2010 - 07:57.

"olk" написал(а):

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

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

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


Ссылки партнёров