2014-12-15 2 views
0

Я использую femanager для управления регистрацией пользователя, входа и выхода из системы.Предотвращение кэша Информация для входа

Как и многие другие сайты, я хотел бы показать некоторые данные пользователя в верхней части страницы (используя Boostraps mini-navbar).

  • Если пользователь выходит из системы, это должно выглядеть так: Call for registration if the user is not logged in
  • Если пользователь вошел в систему, эта информация должна отображаться: Greetings if the user is logged in

Как новичок Typo3, я реализую это с Typo Script и частичным в Fluid Template. Сценарий Typo считывает текущего пользователя (идентификатор пользователя и адрес электронной почты).

userdata = COA_INT 
userdata { 
    10 = TEXT 
    10.data = TSFE:fe_user|user|uid 
    20 = TEXT 
    20.data = TSFE:fe_user|user|username 
} 

Частично использует идентификатор пользователя для проверки того, был ли пользователь зарегистрирован или вышел из системы.

<f:if condition="{f:cObject(typoscriptObjectPath: 'userdata.10')} > 0"> 
    <f:then> 
     <!-- user is logged in --> 
     <span class="greeting"> 
     <i class="fa fa-user"></i> <f:cObject typoscriptObjectPath="userdata.20" /> 
     </span> 
     <f:link.page pageUid="319" additionalParams="{logintype: 'logout'}" class="pull-right"><i class="fa fa-power-off"></i> Logout</f:link.page> 
    </f:then> 
    <f:else> 
    <!-- user is logged out --> 
     <span class="greeting"> 
     Test it for free 
     </span> 
     <f:link.page pageUid="317" class="pull-right"><i class="fa fa-arrow-circle-down"></i> Register</f:link.page> 
     <f:link.page pageUid="319" class="pull-right"><i class="fa fa fa-sign-in"></i> Log in</f:link.page> 
    </f:else> 
</f:if> 

Это работает нормально, но у меня проблемы с кешированием. Иногда мини-навигатор отображается для другим пользователем.

Мой вопрос: Как предотвратить частичное кеширование?

ответ

0

Кэширование в Partials может быть сложно иногда ..

Посмотрите на ViewHelper безопасности в рамках VHS ViewHelper коллекции. Он имеет некоторые интересные функции, которая покрывает ваш случай:

<v:security.allow anyFrontendUser="TRUE"> 
    <f:then><!-- protected information displayed --></f:then> 
    <f:else><!-- link to login form displayed --></f:else> 
</v:security.allow> 

ВИДЕТЬ documenation для получения дополнительной информации.

+0

спасибо. Но у меня проблемы с этим. Я установил расширение __fluidcontent__ через диспетчер расширений, как описано [здесь] (https://fluidtypo3.org/documentation/installation/from-ter.html). Затем часть then и часть else игнорируются, то есть не отображаются. Должен ли я настроить что-то, чтобы использовать его в частичном? – Vertex

+0

Вы зарегистрировали пространство имен в начале шаблона ?, например. '{namespace v = FluidTYPO3 \ Vhs \ ViewHelpers}' – konsolenfreddy

+0

Нет, не сделал. Благодарю. Если я поместил директиву namespace в шаблон, он будет проигнорирован. Если я положил его в верхней части частичного, Typo3 показывает мне эту ошибку: 'Не удалось проанализировать класс: FluidTYPO3 \ Vhs \ ViewHelpers \ Security \ AllowViewHelper, возможно, не загружен или нет автозагрузчика?' – Vertex

Смежные вопросы