Как в шаблоне проверить залогиненность юзера?

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

Аватар пользователя anser anser 26 января 2012 в 14:25

Хочу в самом начале шаблона поставить рекламный код, который бы показывался исключительно НЕавторизованным юзерам (а любым авторизованным - не показывался). Каким простым PHP-кодом в шаблоне темы проверить залогиненность юзера?

Полагаю, что все нужное написано тут: http://api.drupal.ru/api/function/user_access/6
но сложновато разобраться.

P.S. Можно, конечно, сделать блок в шапке, но у меня он не очень красиво получается, поэтому хотелось бы все-таки вставить в шаблон.

Комментарии

Аватар пользователя Айдар Айдар 26 января 2012 в 14:34

"aleks_84" wrote:
user_is_logged_in()

Интересно, а бажнет, если включить это условие не в шаблон, а в блок? Тут 2 варианта: в регионе выводятся блоки, в т.ч. данный блок с условием, и в регионе выводится только этот блок (т.е. если регион пустой - для авторизованных, то скроется ли он)?

Аватар пользователя Ch Ch 26 января 2012 в 14:41

В шаблонах есть специальная переменная:

$logged_in: TRUE если пользователь зарегестрирован и залогинен.

Аватар пользователя anser anser 26 января 2012 в 19:42

Если кому интересно, то я себе сделал в итоге так:

<?php  
if (!(user_is_logged_in())):
?>
 
тут куча html-кода для неавторизованных

<?php endif;
?>

Аватар пользователя bsyomov bsyomov 26 января 2012 в 19:50

А создать блок и выводить его в соответствующий регион, используя его настройки видимости не катит? Smile

Аватар пользователя drupby drupby 26 января 2012 в 20:06

"bsyomov" wrote:
А создать блок и выводить его в соответствующий регион, используя его настройки видимости не катит? =)

если есть задание и решение ,то зачем его менять?

Аватар пользователя ihappy ihappy 26 января 2012 в 21:36

"anser" wrote:
Нет, со своим кодом гибче получается. Ведь Drupal обрамляет блоки в дивы.

и что?
В чем сложность?

Аватар пользователя bsyomov bsyomov 26 января 2012 в 21:39

Во что обрамляет какие блоки Drupal, управляется темизацией, да и не так уж плох лишний див.
А решение с блоком более естественное в рамках Drupal, и более поддерживаемое - куда проще посмотреть список блоков и отредактировать блок в админке, чем рыться в теме и искать, куда вы засунули кусок кода, да и сменить потом при необходимости видимость тоже проще - например надо будет показывать блок не на всех страницах, или показывать разные блоки разным ролям или ещё что-нибудь.
Полагаться на то, что сайт будет таким, как вы его сделали и заведомо усложнять последующую модификацию, плохая привычка.