Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查typo3流体模板中的列内容?_Typo3_Fluid - Fatal编程技术网

如何检查typo3流体模板中的列内容?

如何检查typo3流体模板中的列内容?,typo3,fluid,Typo3,Fluid,我有一个typo3流体模板,我想在渲染某些元素之前检查内容是否存在。 有没有一种有效的方法可以做到这一点? 例如 是否有内置变量或简单方法来检查列位置中是否存在内容? 这是CMS模板中的一项常见任务(除非有东西要显示,否则不要渲染此部分),但我似乎找不到简单的方法。没有简单的方法可以做到这一点。但您可以使用一些打字稿,然后将计数传递给Fluid,并在以下条件下使用它: lib.countContent = CONTENT lib.countContent { table = tt_co

我有一个typo3流体模板,我想在渲染某些元素之前检查内容是否存在。 有没有一种有效的方法可以做到这一点? 例如


是否有内置变量或简单方法来检查列位置中是否存在内容?
这是CMS模板中的一项常见任务(除非有东西要显示,否则不要渲染此部分),但我似乎找不到简单的方法。

没有简单的方法可以做到这一点。但您可以使用一些打字稿,然后将计数传递给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>

然后展示一些东西
如果仍要使用内容,但内容对象中没有全局换行,也可以直接使用它,因为流体IfViewHelper会检查空字符串。例如,这可能会更好:

lib.content < styles.content.get
lib.content
(如果没有内容,则此对象为空)


{lib.content}
没有找到内容

您可以轻松解决此问题:

  • 在键入脚本文件中:

    lib.contentInColPos0 < styles.content.get
    lib.contentInColPos0 t.select.where = colPos = 0
    
    lib.contentInColPos0
  • 在模板文件中:

    <f:if condition="{f:cObject(typoscriptObjectPath:'lib.contentInColPos0')}">
      <div class="section-content">
        <f:render section="Main" />
      </div>
    </f:if>
    
    
    

  • 考虑使用ViewHelpers的VHS,或结合使用
    as
    参数和
    f:if
    条件来检查指定变量是否为空。

    使用VHS和检查此情况的最简单方法,无需键入脚本

    <f:if condition="{v:content.get(column:6) -> v:iterator.first()}">
        <div class="myAmazingClass">
        </div>
    </f:if>
    
    
    
    如果需要,可以在子页面中滑动内容:

    <f:if condition="{v:content.get(column:6, slide:'-1') -> v:iterator.first()}">
        <div class="myAmazingClass">
        </div>
    </f:if>
    
    
    
    <f:if condition="{v:content.get(column:6) -> v:iterator.first()}">
        <div class="myAmazingClass">
        </div>
    </f:if>
    
    <f:if condition="{v:content.get(column:6, slide:'-1') -> v:iterator.first()}">
        <div class="myAmazingClass">
        </div>
    </f:if>