[РЕШЕНО]Туплю. Подскажите по ролям не для отображения а для публикации того или иного контента

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

Аватар пользователя Boozenok Boozenok 1 мая 2013 в 17:05

Что-то я не догяняю)
Через
<?phpif (array_key_exists(5, $user->roles)):?>
и
<?phpuser_access('правило'?>

можно регулировать ОТОБРАЖЕНИЕ того или иного материала для разных ролей

А мне нужно регулировать именно print

Например, есть профиль роли А, в нем выведено в юзер.профайл, например, <?php print l('Фотоальбомы'"albums/$account->uid");?>

Мне нужно что бы надпись "Фотоальбомы" выдели все пользователи, а вот было опубликовано оно только у роли А. А В роли Б его небыло, так как у них и фоток нет.

Или например хочу вывести комментарии сайта только в профиле роли Б, а в профиле роли А они что-бы не выводились, но когда любой пользователь заходит на профиль Б он тоже их видит.

Искала в API drupal но все базируется именно на отображении материала. То есть нужен доступ по роли не для ВИДИМОСТИ, а именно для ПЕЧАТИ!

Комментарии

Аватар пользователя Boozenok Boozenok 7 мая 2013 в 16:50

Еврика, неужели он заработал. Для print в своем акке:
Крутила вдоль и поперек. Так работает, хотя сложно судить насколько код правильный))
<?php
global $user;
if (arg(0) == 'user' && $user->uid == arg(1)){
return TRUE;
}
else {
return FALSE;
}
?>

"ХулиGUN" wrote:
ХулиGUN

О, спасибо! Проблема как раз была с тем если ролей нет. Спасибо, уже дошло))

Аватар пользователя Boozenok Boozenok 7 мая 2013 в 19:03

"Boozenok" wrote:
ХулиGUN

А можно вопросик под шумок?:)

Как вывод материала присвоить сразу двум ролям через: ?php
global $user;
if (array_key_exists('role', $account->roles)):?>

так что бы один блок, например, отображался только для двух ролей. Программно.
Или тут нужно перебирать массив?

Аватар пользователя Boozenok Boozenok 7 мая 2013 в 19:44

"ХулиGUN" wrote:

global $user - это ты


да, да))

"ХулиGUN" wrote:
if (array_key_exists('role1', $account->roles)||array_key_exists('role2', $account->roles))

Ну тупко! Все без последней скобки писала))) Бьюсь тут битый час без толку..

Спасибо большое,

"ХулиGUN" wrote:
ХулиGUN
, как всегда;)