gpt4 book ai didi

typo3 - 在 Fluid 中显示登录 TYPO3 前端用户的全名

转载 作者:行者123 更新时间:2023-12-05 06:55:29 25 4
gpt4 key购买 nike

任务非常简单:我想在 Fluid 中显示当前 TYPO3 前端用户的全名(名字和姓氏)。但不知何故,TYPO3(9.5 版)或 Fluid 似乎缓存数据,因此登录的前端用户有时会看到其他登录用户的名称。

当前实现:

打字错误:

lib.username = USER_INT
lib.username.userFunc = Vendor\Extension\UserFunc\Username->getUsername

这是一个 USER_INT,因此输出应该始终未缓存。

流体布局 - Default.html:

<f:render partial="Header" section="Top" />

部分流体 - Header.html:

<f:section name="Top">
<img src="logo.png">
<f:render partial="Navigation" />
</f:section>

部分流体 - Navigation.html

<f:security.ifAuthenticated>
<f:then>
<p>Logged in as: <f:cObject typoscriptObjectPath="lib.username" /></p>
</f:then>
<f:else>
<p>Not logged in</p>
<f:else>
</f:security.ifAuthenticated>

为什么要缓存 cObject 的结果?这不应该总是根据请求计算吗,因为 lib.usernameUSER_INT?我还尝试将 f:cache.disable ViewHelper 添加到模板,但没有成功。

为了解决这个问题,我重构了它以使用 JavaScript XHR 请求获取 fe_user 的全名到一个简单的 PSR-15 中间件。这真的是唯一合适的解决方案还是我遗漏了什么?


2020 年 12 月 17 日更新

一切正常。我刚刚在我的 userFunc 中发现了一个拼写错误,这导致了意外行为。

最佳答案

发生这种情况是因为 TYPO3 缓存适用于前端用户组,而不是前端用户。因此,您将看到为用户组列表而不是当前用户缓存的结果。

使用 <v:render.uncache> ... </v:render.uncache>来自 EXT:vhs 以呈现未缓存的那部分代码。或者,您可以修改 TYPO3 缓存以使用当前用户,但这可能会降低缓存性能并严重增加缓存项的数量。

关于typo3 - 在 Fluid 中显示登录 TYPO3 前端用户的全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65329838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com