我正在使用 femanager 来管理用户注册,登录和注销。
与许多其他网站一样,我想在页面顶部显示一些用户信息(使用Boostraps mini-navbar )。
作为Typo3的初学者,我使用Typo Script和部分流体模板实现了这一点。 Typo脚本读取当前用户(用户ID和电子邮件地址)。
userdata = COA_INT
userdata {
10 = TEXT
10.data = TSFE:fe_user|user|uid
20 = TEXT
20.data = TSFE:fe_user|user|username
}
部分使用用户ID检查用户是否已登录或注销。
<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 :(得分:0)
部分缓存有时会很棘手......
查看VHS viewhelper集合中的security 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。