E::IsAdmin() — авторизован ли пользователь и является ли он админом
E::UserId() — если пользователь авторизован, то возвращает его ID
E::User() — если пользователь авторизован, то возвращает сущность User
E::ActivePlugin(имя_плагина) — проверяет, активирован ли указанный плагин
Примеры использования в шаблонах:
{if !E::IsUser()}
{* включаем шаблон, который показываем только неавторизованным посетителям *}
{include file="template_for_guests.tpl"}
{/if}
{if E::IsAdmin()}
{* здесь может быть какая-то инфа только для админов *}
{/if}
{if $oTopic->GetUserId()==E::UserId()}
{* тут какие-то действия для автора топика *}
{/if}
{if E::IsUser()}
Ваш логин: {E::User()->GetLogin()}
{/if}
{if E::ActivePlugin("yametrika")}
Ура! У нас есть Яндекс.Метрика!
{/if}
Я специально примеры пишу для использования в шаблонах, хотя, разумеется, эти функции работают, где угодно — и в экшенах, и в модулях и т.д. Но, разработчики сами разберуться, как грамотно их заюзать. И, кстати, о разработчиках — последняя фишка уже для них.В большинстве компонентов движка для доступа к методам модулей можно использовать такую конструкцию:
$this->Module_Method();
Но иногда такой подход не годится (например, в плагинах/функциях для Viewer). И там приходится писать более громоздкие конструкции:Engine::getInstance()->Module_Method();
Вот для таких случаев и придуман более простой вариант:E::Module_Method();
Ничего принципиально нового эта форма записи не несет, только лишь сокращает запись и все.
19 комментариев
$oUserCurrent — это переменная, которая передается в шаблон из экшена (и/или модуля). Если ее передать — она будет работать, а если нет — всегда будет возвращать false, даже если пользователь на сайте авторизован. Т.е. получается, что все от программиста зависит — забыл/не забыл он эту переменную передать в шаблон.
А E::IsUser() — это функция, которая всегда отработает в шаблоне корректно и гарантированно вернет результат — авторизован ли юзер.
Собственно, это то же самое, если написать:
Только гораздо короче, и запомнить проще.
{if E::IsUser()}
текст
{/if}
он мне выдает такое сообщение
Fatal error: Call to a member function getId() on a non-object in
сайт на последней версии alto из github
{if !E::IsUser()}
тут пусто
{else}
то, что мне надо
{/if}
файл block.blogs_top.tpl
И если все ОК, то в $sUserLogin будет логин юзера. Но это плохая практика, все же лучше это не в шаблоне делать, а в экшене или через сущность