TYPO3:在流体模板中生成随机变量
TYPO3: Generate random variable in FLUID Template
我的 FLUID 模板中有三张图片,我想随机显示这三张图片中的一张。在 FLUID 模板中是否有任何方法可以做到这一点,或者这是不可能的,我必须采用其他方式吗?
我尝试了 TYPO3 扩展 "VHS" 来生成一个随机数:
{v:random.number(minimum: 1, maximum: 3, minimumDecimals: 0, maximumDecimals: 0)}
在前端我看到了生成的数字。但是如何将随机数设置为变量以在 if-else-condition 中使用它?
在安装了 VHS 的 TYPO3v7 上:
{v:random.number(...) -> v:variable.set(name: 'newvariablename')}
在 TYPO3v8 及更高版本上,或在 Fluid standalone 上:
{v:random.number(...) -> f:variable(name: 'newvariablename')}
然后使用新变量:
<f:if condition="{newvariablename}" then="random number greater than zero" />
VHS 也可以做到这一点
<v:iterator.sort subject="{images}" as="randomimages" order="RAND" />
我没有在 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}
我的 FLUID 模板中有三张图片,我想随机显示这三张图片中的一张。在 FLUID 模板中是否有任何方法可以做到这一点,或者这是不可能的,我必须采用其他方式吗?
我尝试了 TYPO3 扩展 "VHS" 来生成一个随机数:
{v:random.number(minimum: 1, maximum: 3, minimumDecimals: 0, maximumDecimals: 0)}
在前端我看到了生成的数字。但是如何将随机数设置为变量以在 if-else-condition 中使用它?
在安装了 VHS 的 TYPO3v7 上:
{v:random.number(...) -> v:variable.set(name: 'newvariablename')}
在 TYPO3v8 及更高版本上,或在 Fluid standalone 上:
{v:random.number(...) -> f:variable(name: 'newvariablename')}
然后使用新变量:
<f:if condition="{newvariablename}" then="random number greater than zero" />
VHS 也可以做到这一点
<v:iterator.sort subject="{images}" as="randomimages" order="RAND" />
我没有在 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}