Тема: Показ блока группе пользователей.

Подскажите, как сделать показ блока, например баннера, только определенной группе пользователей, например гостям, т.е. группе guests. А после регистрации этот блок уже скрывался с глаз.

Повысить оценку Понизить оценку

2 Отредактировано Александр (11.06.2015 15:34:20)

Re: Показ блока группе пользователей.

В шаблоне всегда есть переменная с текущим пользователем:

<pre>
{$current_user}
</pre>

Она является объектом пользователя \Users\Model\Orm\User, а это значит, что ему доступны все функции данного класса. Посмотреть класс можно здесь /modules/users/model/orm/user.inc.php.
Соответственно получить группу можно так:

{* Проверка в группе гостей ли пользователь *}
{if $current_user->inGroup('алиас группы')}
   //Группа гостей
{/if}

Для вашей ситуации это алиас guests соотвественно

Re: Показ блока группе пользователей.

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

Повысить оценку Понизить оценку

4 Отредактировано Александр (11.06.2015 16:51:14)

Re: Показ блока группе пользователей.

clients это авторизованные пользователи, а guests это гости. Банеры вроде не кешируются. А этот точно у Вас тот же шаблон.
Кстати пришла идея полегче.
Я забыл, что в шаблоне также доступна переменная $is_auth - авторизован ли пользователь.
Поэтому обёртку можно сделать так, а то лишний запрос делать не хорошо)

{if $is_auth}{* Проверяет авторизован ли пользователь *}

{/if}

Все авторизованные 100% зарегистрированные.

Re: Показ блока группе пользователей.

Да, спасибо, Александр.
Первый пример сработал немного по другому:

{if $current_user->InGroup('clients')}
   //Да, я клиент
{else}
   //Нет, я не клиент
{/if}

Второй сработал сразу же:

{if $is_auth}
Авторизован
{else}
Не авторизован
{/if}

Спасибо, что помогли разобраться.


А не такого же функционала, только еще, например, по IP адресу?

Повысить оценку +1 Понизить оценку

Re: Показ блока группе пользователей.

В смарти все переменные глобальных массивов можно получить так
Зарезервированная переменная $smarty

Т.е.

{* Получает Ваш IP адрес *}
{$smarty.server.REMOTE_ADDR} 

Re: Показ блока группе пользователей.

Все понял, благодарю.

Повысить оценку Понизить оценку

Re: Показ блока группе пользователей.

Александр приветствую, я новичок в редискрипт до этого фирма работала на опенкарт), аналогичный вопрос подскажите нужно спрятать цену для гуест, я так понимаю копать надо в product.tpl

{hook name="catalog-product:price" title="{t}

Карточка товара:цены{/t}"} ??

Повысить оценку Понизить оценку

Re: Показ блока группе пользователей.

Разобрался СПС Вам за подсказку

Повысить оценку Понизить оценку