Тема: Показ блока группе пользователей.
Подскажите, как сделать показ блока, например баннера, только определенной группе пользователей, например гостям, т.е. группе guests. А после регистрации этот блок уже скрывался с глаз.
Форум ReadyScript Вопросы по работе с системой Показ блока группе пользователей.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите, как сделать показ блока, например баннера, только определенной группе пользователей, например гостям, т.е. группе guests. А после регистрации этот блок уже скрывался с глаз.
В шаблоне всегда есть переменная с текущим пользователем:
<pre>
{$current_user}
</pre>
Она является объектом пользователя \Users\Model\Orm\User, а это значит, что ему доступны все функции данного класса. Посмотреть класс можно здесь /modules/users/model/orm/user.inc.php.
Соответственно получить группу можно так:
{* Проверка в группе гостей ли пользователь *}
{if $current_user->inGroup('алиас группы')}
//Группа гостей
{/if}
Для вашей ситуации это алиас guests соотвественно
Спасибо за ответ.
Вроде бы все понятно. Но скажите, авторизованный пользователь находится одновременно в группе гостей в группе клиентов?
Потому что блок все-равно показывается всем пользователям.
clients это авторизованные пользователи, а guests это гости. Банеры вроде не кешируются. А этот точно у Вас тот же шаблон.
Кстати пришла идея полегче.
Я забыл, что в шаблоне также доступна переменная $is_auth - авторизован ли пользователь.
Поэтому обёртку можно сделать так, а то лишний запрос делать не хорошо)
{if $is_auth}{* Проверяет авторизован ли пользователь *}
{/if}
Все авторизованные 100% зарегистрированные.
Да, спасибо, Александр.
Первый пример сработал немного по другому:
{if $current_user->InGroup('clients')}
//Да, я клиент
{else}
//Нет, я не клиент
{/if}
Второй сработал сразу же:
{if $is_auth}
Авторизован
{else}
Не авторизован
{/if}
Спасибо, что помогли разобраться.
А не такого же функционала, только еще, например, по IP адресу?
В смарти все переменные глобальных массивов можно получить так
Зарезервированная переменная $smarty
Т.е.
{* Получает Ваш IP адрес *}
{$smarty.server.REMOTE_ADDR}
Александр приветствую, я новичок в редискрипт до этого фирма работала на опенкарт), аналогичный вопрос подскажите нужно спрятать цену для гуест, я так понимаю копать надо в product.tpl
{hook name="catalog-product:price" title="{t}
Карточка товара:цены{/t}"} ??
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум ReadyScript Вопросы по работе с системой Показ блока группе пользователей.