TYPO3:在FLUID模板中生成随机变量

问题描述 投票:2回答:3

我的FLUID模板中有三个图像,并希望随机显示这三个图像中的一个。有什么方法可以在FLUID模板中执行此操作,或者这是不可能的,我必须采取其他方式吗?

我尝试了TYPO3扩展“VHS”来生成一个随机数:

{v:random.number(minimum: 1, maximum: 3, minimumDecimals: 0, maximumDecimals: 0)}

在前端,我看到生成的数字。但是如何将随机数设置为变量以在if-else条件中使用它?

random typo3 fluid view-helpers
3个回答
4
投票

在安装了VHS的TYPO3v7上:

{v:random.number(...) -> v:variable.set(name: 'newvariablename')}

在TYPO3v8及更高版本上,或在Fluid独立版上:

{v:random.number(...) -> f:variable(name: 'newvariablename')}

然后使用新变量:

<f:if condition="{newvariablename}" then="random number greater than zero" />

3
投票

VHS也可以做到这一点

<v:iterator.sort subject="{images}" as="randomimages" order="RAND" />

2
投票

我不在TYPO3v9中使用vhs。我用秒和简单的数学。我从数组中得到迭代器的随机值:

<f:variable name="sec4random" value="{f:format.date(date:'0 seconds', format:'s')}"/>
<f:variable name="count4random" value="{f:count(subject: images)}"/>
Random index for iterator: {sec4random % count4random} 
© www.soinside.com 2019 - 2024. All rights reserved.