我有一个typo3 fluid模板,我想在其中渲染某些元素之前检查内容是否存在。有一种有效的方法可以做到这一点吗?例如。
<f:if condition="{contentInColPos0}">
<div class="section-content">
<f:render section="Main" />
</div>
</f:if>
是否有内置变量或简单的方法来检查列位置中是否存在内容?这是CMS模板中的常见任务(除非要显示某些内容,否则不要渲染此部分),但是我似乎找不到简单的方法。
没有简单的方法可以做到这一点。但是您可以使用一些TypoScript,然后将计数传递给Fluid并在某种情况下使用它:
lib.countContent = CONTENT
lib.countContent {
table = tt_content
select {
selectFields = count(uid) AS count
pidInList = this
andWhere = (deleted = 0 AND hidden = 0)
}
renderObj = COA
renderObj {
10 = TEXT
10 {
data = field:count
}
}
该对象将输出给定页面上的内容行数,可以在Fluid中进行访问:
<f:if condition="{f:cObject(typoscriptObjectPath:'lib.countContent')} > 0">
Then show some stuff
</f:if>
如果仍然要使用内容,并且内容对象中没有全局包装,则也可以直接使用它,因为Fluid IfViewHelper会检查空字符串。因此,例如,这可能会更好地工作:
lib.content < styles.content.get
(如果没有内容,则此对象为空)
<f:if condition="{f:cObject(typoscriptObjectPath:'lib.content')}">
<f:then>
<f:format.html>{lib.content}</f:format.html>
</f:then>
<f:else>
No content found
</f:else>
</f:if>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句