Typo3,如何动态改变内容
Typo3, how to dynamically change content
问题
有一项要求,根据用户在首次访问时做出的选择换掉徽标。 (国际标志和北美标志)
我想到了什么
起初认为这个问题可以使用 cookie 来解决。我实施了一些 javascript,以在需要时检查和设置 cookie。到目前为止这工作正常,但使用 javascript 更改为徽标不是可行的方法,现在我正在寻找可能的解决方案。
一些想法
如果遵循 cookie 方法,我需要一种基于 cookie 换出 template/partials 的方法。有没有什么办法可以使用流畅或打字来做到这一点?
也许 cookie 方法是处理这个问题的错误方法?也许这可以(滥用)使用语言选择或类似的东西来完成?
感谢任何帮助或想法。
谢谢!
首先:请使用更准确描述问题的问题标题。
使用 javascript 设置 cookie 后,您可以将徽标设置为在 TypoScript 中呈现。
有条件(https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Conditions/Index.html#request-getcookieparams)可以读取cookie参数,根据cookie设置logo。
[request.getCookieParams()['logo'] == 'us']
lib.logoFile = pathToYourLogos/us.svg
[else]
lib.logoFile = pathToYourLogos/international.svg
[end]
感谢@thomas-löffler 和@jonas-eberle 指出了正确的方向。 Thomass 解决方案适用于 Typo3 >= 9。此解决方案对我在 Typo3 版本上有效。 8.7(另见 this solution):
- 像这样在 typoscript(设置)中获取 cookie 值:
lib.requestedLocation = TEXT
lib.requestedLocation.data = global:_COOKIE|<cookie-name>
- 获取 cookie 值后,我们可以像这样将其用于流体:
<f:variable name="location" value="{f:cObject(typoscriptObjectPath: 'lib.requestedLocation')}" />
<f:if condition="{location} == 'america'">
<f:then>
<img class="logo" src="/path-to-us-logo.svg">
</f:then>
<!-- defaulting to international if cookie is not set or somehting else is wrong -->
<f:else>
<img class="logo" src="/path-to-international-logo.svg">
</f:else>
</f:if>
问题
有一项要求,根据用户在首次访问时做出的选择换掉徽标。 (国际标志和北美标志)
我想到了什么
起初认为这个问题可以使用 cookie 来解决。我实施了一些 javascript,以在需要时检查和设置 cookie。到目前为止这工作正常,但使用 javascript 更改为徽标不是可行的方法,现在我正在寻找可能的解决方案。
一些想法
如果遵循 cookie 方法,我需要一种基于 cookie 换出 template/partials 的方法。有没有什么办法可以使用流畅或打字来做到这一点?
也许 cookie 方法是处理这个问题的错误方法?也许这可以(滥用)使用语言选择或类似的东西来完成?
感谢任何帮助或想法。
谢谢!
首先:请使用更准确描述问题的问题标题。
使用 javascript 设置 cookie 后,您可以将徽标设置为在 TypoScript 中呈现。
有条件(https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Conditions/Index.html#request-getcookieparams)可以读取cookie参数,根据cookie设置logo。
[request.getCookieParams()['logo'] == 'us']
lib.logoFile = pathToYourLogos/us.svg
[else]
lib.logoFile = pathToYourLogos/international.svg
[end]
感谢@thomas-löffler 和@jonas-eberle 指出了正确的方向。 Thomass 解决方案适用于 Typo3 >= 9。此解决方案对我在 Typo3 版本上有效。 8.7(另见 this solution):
- 像这样在 typoscript(设置)中获取 cookie 值:
lib.requestedLocation = TEXT
lib.requestedLocation.data = global:_COOKIE|<cookie-name>
- 获取 cookie 值后,我们可以像这样将其用于流体:
<f:variable name="location" value="{f:cObject(typoscriptObjectPath: 'lib.requestedLocation')}" />
<f:if condition="{location} == 'america'">
<f:then>
<img class="logo" src="/path-to-us-logo.svg">
</f:then>
<!-- defaulting to international if cookie is not set or somehting else is wrong -->
<f:else>
<img class="logo" src="/path-to-international-logo.svg">
</f:else>
</f:if>