Изменение отображения сайта для аутентифицированных пользователей

Avatar of admin admin - 19.04.2017 12:04 - CMS, TYPO3, Настройка

Иногда требуется изменить отображение/поведение страниц сайта в зависимости от того, вошел текущий пользователь в систему (т.е. "залогинился", logged in) или нет. Для этого есть минимум два варианта:

  • использовать возможности Fluid;
  • использовать TypoScript.

Fluid

Fluid имеет в составе Security/IfAuthenticatedViewHelper, который реализует условие для фронтэнд пользователей/групп. В общем виде используется таким образом:
<f:security.ifAuthenticated>
<f:then>
    Это будет показано, если пользователь находится в системе.
</f:then>
<f:else>
    А это в противоположном случае.
</f:else>
</f:security.ifAuthenticated>

Либо можно упростить, если нужно учесть только факт нахождения в системе.

<f:security.ifAuthenticated>
    Это будет показано, если пользователь находится в системе.
</f:security.ifAuthenticated>

Либо в одну строку:

{f:security.ifAuthenticated(then: [mixed], else: [mixed])}

Простой пример:

<div class="article" {f:security.ifAuthenticated(then: 'style="color: green;"')}>

TypoScript

TypoScript поддерживает условие loginUser. В общем виде:

[loginUser = fe_users-uid, fe_users-uid, ...]
    Если условие выполняется ....
[end]

Условие выполняется, если пользователь в системе и имеет uid из списка, который находится в правой части.

Если важен сам факт присутствия в системе, можно использовать так:

[loginUser = *]

Или обратный вариант, условие, которое выполняется, если пользователь не логинился:

[loginUser = ]

Новый комментарий

0 комментариев