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,目前,我有一个代码,它每两个项目就用 <f:for each="{modules}" as="module" iteration="loop"> <f:cycle values="{0: 1, 1: 0}" as="header"> <li> </f:cycle> ...stuff here... <f:cycle

目前,我有一个代码,它每两个项目就用
  • <f:for each="{modules}" as="module" iteration="loop">
                <f:cycle values="{0: 1, 1: 0}" as="header">
                    <li>
                </f:cycle>
                ...stuff here...
                <f:cycle values="{0: 0, 1: 1}" as="footer">
                    </li>
                </f:cycle>
          </f:for>
    
    
    
  • …这里的东西。。。
  • 假设{modules}=[A,B,C,D],输出如下:

    <li>AB</li>
    <li>CD</li>
    
  • AB
  • 光盘
  • 我需要做的是将自定义html添加到第二个位置。因此,我期望的输出是:

    <li>AX</li>
    <li>BC</li>
    <li>D</li>
    
  • AX
  • 卑诗省
  • D

  • 我该怎么做?

    您可以像下面这样做

    <f:for each="{modules}" as="module" iteration="iteration">
        <f:if condition="{iteration.isFirst}">
            <f:then>
                <li>
            </f:then>
            <f:else>
                <f:if condition="{iteration.index}%2">
                    <f:then></f:then>
                    <f:else><li></f:else>
                </f:if> 
               </f:else> 
            </f:if>
            <!--
                Here Your Content
             -->
            <f:if condition="{iteration.isLast}">
            <f:then>
                </li> 
            </f:then>
            <f:else>
                <f:if condition="{iteration.cycle}%2"> 
                    <f:then></f:then>
                    <f:else></li></f:else>
                </f:if>
            </f:else>
        </f:if> 
    </f:for>
    
    
    

  • 您可以像下面这样做

    <f:for each="{modules}" as="module" iteration="iteration">
        <f:if condition="{iteration.isFirst}">
            <f:then>
                <li>
            </f:then>
            <f:else>
                <f:if condition="{iteration.index}%2">
                    <f:then></f:then>
                    <f:else><li></f:else>
                </f:if> 
               </f:else> 
            </f:if>
            <!--
                Here Your Content
             -->
            <f:if condition="{iteration.isLast}">
            <f:then>
                </li> 
            </f:then>
            <f:else>
                <f:if condition="{iteration.cycle}%2"> 
                    <f:then></f:then>
                    <f:else></li></f:else>
                </f:if>
            </f:else>
        </f:if> 
    </f:for>
    
    
    

  • 对于更新后的问题,我想说的是,在通过控制器将模块添加到视图之前,您可能希望使用自己的助手类解决此问题

    但是,可以在模板中简单地构建它:

    这是关于这个项目的文档

    为简单起见,我将执行以下操作:

    <f:for each="{modules}" as="module" iteration="loop">
    
                <f:if condition="{loop.isFirst}">
                  <f:then>
                    <li>
                     {module}
                     ##extra_code##
                    </li>
                  </f:then>
                  <f:else>
                      <f:if condition="{loop.isEven}">
                         <li>
                      </f:if>
                        ...stuff here...
                      <f:if condition="{loop.isOdd} || {loop.isLast}">
                        </li>
                      </f:if>                  
                </f:else>
                </f:if>
    
          </f:for>
    
    
    
  • {module} ##额外代码##
  • …这里的东西。。。
  • 注:第一个元素将是“奇数”,因为isOdd采用当前的交互(基于“循环”),该交互从1开始

    对于第一个元素,有您自己的块。您可以使用第一个模块编写自己的代码。它将只运行一次


    从第二个元素到最后一个元素,它将在一个li逻辑中使用2元素。这里只有一件有趣的事情,我们需要使用isOdd或isLast来始终关闭最后一个li,即使您有偶数个元素。

    对于您更新的问题,我想说的是,在通过控制器将模块添加到视图之前,您可能希望使用自己的Helper类解决此问题

    但是,可以在模板中简单地构建它:

    这是关于这个项目的文档

    为简单起见,我将执行以下操作:

    <f:for each="{modules}" as="module" iteration="loop">
    
                <f:if condition="{loop.isFirst}">
                  <f:then>
                    <li>
                     {module}
                     ##extra_code##
                    </li>
                  </f:then>
                  <f:else>
                      <f:if condition="{loop.isEven}">
                         <li>
                      </f:if>
                        ...stuff here...
                      <f:if condition="{loop.isOdd} || {loop.isLast}">
                        </li>
                      </f:if>                  
                </f:else>
                </f:if>
    
          </f:for>
    
    
    
  • {module} ##额外代码##
  • …这里的东西。。。
  • 注:第一个元素将是“奇数”,因为isOdd采用当前的交互(基于“循环”),该交互从1开始

    对于第一个元素,有您自己的块。您可以使用第一个模块编写自己的代码。它将只运行一次


    从第二个元素到最后一个元素,它将在一个li逻辑中使用2元素。这里只有一件有趣的事情,我们需要使用isOdd或isLast来始终关闭最后一个li,即使您有偶数个元素。

    我没有充分解释我自己,更新的问题。我没有充分解释我自己,更新的问题。我没有充分解释我自己,更新的问题。这是一个更棘手的问题,但在您获得isEven/isOdd/isFirst/isLast后,很容易将其拼凑在一起。除了最后一个
    为每个模块添加
    之外,这是有效的。我删除了
    |
    并为最后一个模块使用嵌套的if,这肯定是出于某种原因,我想我是7.6了。非常感谢。我得记住这一点我解释得不够清楚,更新的问题。这是一个更棘手的问题,但在您获得isEven/isOdd/isFirst/isLast后,很容易将其拼凑在一起。除了最后一个
    为每个模块添加
    之外,这是有效的。我删除了
    |
    并为最后一个模块使用嵌套的if,这肯定是出于某种原因,我想我是7.6了。非常感谢。我必须记住这一点。