Don't forget that you have had a dream

    

TYPO3 常用 fluid 标签及相关操作总结(一)

  • f:base
  • f:cObject

示例:

<f:cObject typoscriptObjectPath="lib.calc" data="45 + 34 * 2" />

配置:

lib.calc = TEXT
    lib.calc {
      current = 1
      prioriCalc = 1
    }

输出:
158
注意:Typo3中 prioriCalc忽略了\的优先级,所以真实计算公式是(45 + 34)\ 2。


  • f:count

示例:

<f:count subject="{myarray}" />
<f:if condition="{myarray -> f:count()} > 3">
    myarray数量与3比较
</f:if>

输出:整数


  • f:debug

示例:

<f:debug title="打印输出变量MyArray">{myarray}</f:debug>
<f:debug title="打印输出所有变量">{_all}</f:debug>

输出:输出对象或数组并打印在页面上


  • f:for

示例:

<ul>
    <f:for each="{shoppinglist}" as="food" key="number" iteration="itemIteration">
      <li class="item{f:if(condition: itemIteration.isFirst, then: ''first-child'')}">{number}: {food}</li>
    </f:for>
</ul>

输出:

</ul>
    <li class="item first-child">4: apples</li>
    <li class="item">3: choclate</li>
    <li class="item">25: beer</li>
    <li class="item">10: frozen pizza</li>
</ul>

可使用的迭代值:

itemIteration.index (0索引)
itemIteration.cycle (同上,但是从1开始)(1索引)
itemIteration.total (循环项总数)
itemIteration.isFirst (第一项存在为真)
itemIteration.isLast (最后一项存在为真)
itemIteration.isOdd (奇循环 cycles 1,3,5,...)
itemIteration.isEven (偶循环 cycles 2,4,6,...)

  • f:form

示例:

<f:form action="...">...</f:form>
<f:form action="..." controller="..." package="..." enctype="multipart/form-data"> ... </f:form>

输出:输出HTML表单。数据是通过POST请求提交的(可以通过设置method=''get''来更改)。表单内容请看下一篇文章 使用强大的fluid标签生成表单内容


  • f:if, f:then, f:else

示例1-判断存在:

<f:if condition="{myvar}">
    不是空字符串也不是0
</f:if>
<f:if condition="{myvar}">
      <f:then>不是空字符串也不是0</f:then>
      <f:else>空字符串或0</f:else>
</f:if>
<section class="{f:if(condition: record.show, then: ''visible-record'', else: ''hide'')}">

示例2-比较运算:

<f:if condition="{myvar} == ''foobar''">
      变量等于字符串‘foobar’可见
</f:if>
{f:if(condition:''{variable}==\\''foo\\'''', then:''Hello'')}
{f:if(condition:''{variable}=="foo"'', then:''Hello'')}
<f:if condition="{rank} > 100">
   如果变量值大于100时显示为真
</f:if>
<f:if condition="{rank} % 2">
    如果变量对2取余不等于0时显示为真
</f:if>
<f:if condition="{rank} == {k:bar()}">
    如果变量值等于ViewHelper函数{k:bar()}的返回值时显示为真 ViewHelper "k:bar"
</f:if>
{f:if(condition:''{number}==1'', then:''Hello'')}
<f:if condition="{enable} == 1">真</f:if>
<f:if condition="{enable} == 0">假</f:if>
{f:if(condition: enable, then: ''真'')}
{f:if(condition: ''{enable}==0'', then: ''假'')}
配合ViewHelper使用
<f:if condition="<f:count subject=''{post.comments}'' /> > 0">
      <f:then>为真</f:then>
      <f:else>为假</f:else>
</f:if>
多条件判断
<f:if condition="({variableOne} && {variableTwo}) || {variableThree} || {variableFour}">
    如果变量1和2为真,或者3,4,5变量为真即为真
</f:if>

输出:做为判断使用,可返回变量,也可以返回固定值


  • f:switch

示例:

<f:switch expression="{person.gender}">
   <f:case value="1">{person.lastName}1</f:case>
   <f:case value="2">{person.lastName}2</f:case>
   <f:case value="3">{person.lastName}3</f:case>
   <f:defaultCase>默认</f:defaultCase>
</f:switch>

输出:对应条件的值


  • f:image

示例:

<f:image src="uploads/pics/myImage.png" width="200" height="150" alt="My Image" />
<f:image src="{f:uri.resource(path:''Images/myImage.png'')}" width="200" height="150" alt="My Image" />

输出:

<img src="http://www.examlpe.com/Images/myImage.png" width="200" height="150" alt="My Image" />

再说一句

以上都说了下typo3中常用的一些fluid标签,下片文章中我会再说一下form表单有关的和a标签有关的fluid标签.'

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 知识共享许可协议 进行许可。

评论已关闭

  更新日志

博客banner下方滚动文字替换为使用 一言API 随机获取 --- updated on 2019-05-22 09:04:31 星期三

  关于博主

三里林,一个致力于分享,分享心得,分享技术,分享知识点的个人博客

  近期评论

  分类目录

许多年以后,面对行刑队的时候,奥雷良诺·布恩迪亚上校一定会想起父亲带他去看冰块的那个遥远的下午。

那天放学的时候人很多。楼道很挤,你的手不小心碰到了我的手背,这是我漫长而又短暂的初恋。

前尘种种,似烟似幻,惟有此人教我深感不负大好春光。

我不要你忘记他 , 我只要你记得我

我需要一块二向箔,清理用。

你才是⑨!你全家都是⑨!

我们的生命不是和这种孩子的悲伤一样,迅速地消逝在夜色中吗?

想你想到手都断了…