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

原文链接:https://www.whongbin.cn/index/article/detail/id/41.html

  • f:base

示例:

<f:base />

输出:

<base href="http://example.com/"></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标签.'

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 早晨,空气清新,鸟语花香,走在上学的小路上,心旷神怡,心情愉悦。伴随着轻快的步伐,新的一天又开始了。
    梓誠阅读 170评论 0 0
  • 比赛以刑事案件,双方公诉方和辩诉方同学提出了不同的观点,展开了激烈的辩论,使审判长根据法律依据做出了正确的...
    那些年在一起的日子阅读 329评论 2 4
  • 未至盛夏却陡然烦闷,心情偶尔还是会给我来一下反擒拿,受制于厮更是烦闷。 权衡,好吧,我承认,是这个词。 很多时候我...
    Tina老北阅读 322评论 0 2
  • 如果生命只是某个没有出口的循环,一个圆形的闭合迷宫,错综复杂的折叠仅只是圆环中打不开的死结;如果日复一日年复一年是...
    LynneGong阅读 313评论 0 1