РЕШЕНЕО! Видимость блока для юзера с двумя определенными ролями, как?

19 сентября 2012 в 21:36
Аватар пользователя iNFerNo iNFerNo 0 15

пробую так но что -то фигня видимо...

<?php

  

global $user;

    if (

$user->uid) {
      if (
$user->roles[DRUPAL_AUTHENTICATED_RID] and  $user->roles[3]) {
  return 
FALSE;

}
    
    else {
  return 

TRUE;
    }

}

?>

Комментарии

нельзя так вообще делать. Нужно определить право доступа через хук _perm, выставить этим двум ролям галки в админке друпала и проверять через функцию user_access

19 сентября 2012 в 22:33

"iNFerNo" wrote:
твоим способом тоже пробовал... для одно роли... невыхило...

Потому что у меня && стоит.Поставь тогда || - и будет как ИЛИ работать.
"Worth" wrote:
нельзя так вообще делать. Нужно определить право доступа через хук _perm, выставить этим двум ролям галки в админке друпала и проверять через функцию user_access

Можно и так. Но не лишний ли это велосипед будет?Ради одного то блока.

20 сентября 2012 в 9:24

Ну незнаю че там у вас не работает.. код вроде правильно написал,но не проверял. Дома вечером на семерке проверю и скажу точно.

20 сентября 2012 в 13:08

"Chyvakoff" wrote:
через хук _perm, выставить этим двум ролям галки в админке друпала и проверять через функцию user_access

я таки сделал

добавил в своем модуле

<?phpfunction mymodule_permission() {
  return array(
    'access mymodule' => array(
      'title' => t('Bypass block'), 
      'description' => t('bypass block of with advertising.'),
    ),
  );
} ?>

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

но нифига не работает показ/непоказ блока

<?php
 
global $user;

if (

user_access('access mymodule') {
return 
TRUE;
 }
else {
   return 
FALSE;

}

?>
21 сентября 2012 в 10:15