2014-10-03 1 views
0

alternating template parts의 내용을 tx_news 확장자로 사용할 수 있습니까? 표준 tt_news 템플릿에서 저는 <!-- ###NEWS_1###--><!-- ###NEWS_2###--><!-- ###NEWS_3###--> 등을 사용했습니다. tx_news에는 모든 것이 유체이며, 매뉴얼에 템플릿 부분을 번갈아 사용하는 것과 비슷한 것을 볼 수 없습니다.tx_news에있는 교대 템플릿 부분 수

+1

당신은 할 수 있습니다 그냥 유동적으로 이것을하면 특정 기능이 필요 없습니다. 뉴스는 for-loop로 렌더링되어 현재 인덱스에 변수를 제공합니다.이 태그를 사용하여 뉴스의 렌더링을 다르게합니다. 예제는 여기에서 찾을 수 있습니다 (제목 "반복 정보"아래). http://fluidtypo3.org/viewhelpers/fluid/master/ForViewHelper.html – Jost

+0

@ Jost : 답변이기 때문에 게시하지 마십시오. ('')에 대한 정보를 추가 하시겠습니까? – lorenz

+0

@lorenz 이후 나는 게으르다 :-) – Jost

답변

1

좋아, 다시 대답은 : 당신은 그냥 유체에서이 작업을 수행 할 수 있습니다

, 특정 기능에 대한 필요가 없습니다. 뉴스는 for-loop에서 렌더링되며, 현재 색인으로 변수를 제공합니다 (documentation 참조).

루프 인덱스를 사용하여 서로 다른 수의 템플릿을 모듈화하여 교대로 다른 방식으로 뉴스를 렌더링합니다. 반복 변수는 출력을 제어하는 ​​데 사용할 수있는 몇 가지 하위 속성을 제공합니다. 모두 확인하려면 <f:debug>{iterator}</f:debug>을 사용하십시오.

예를 들어, EXT : news의 목록보기에서이 작업을 수행하여 각 부분이 나타내는 3 개의 교대 템플릿을 얻을 수 있습니다. 만 관련 내부 루프가 표시됩니다 :

<f:for each="{news}" as="newsItem" iteration="iterator"> 
    <f:if condition="{iterator.index} % 3 == 0"> 
     <f:render partial="List/Item_Layout1" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> 
    </f:if> 

    <f:if condition="{iterator.index} % 3 == 1"> 
     <f:render partial="List/Item_Layout2" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> 
    </f:if> 

    <f:if condition="{iterator.index} % 3 == 2"> 
     <f:render partial="List/Item_Layout3" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> 
    </f:if> 
</f:for> 

당신은 EXT가있는 경우 : VHS 네임 스페이스 바로 가기 v 설치, 이것은 더 우아한 조금 할 수 있습니다 (아주 좋은 확장!) :

<f:for each="{news}" as="newsItem" iteration="iterator"> 
    <v:switch value="{iterator.index} % 3"> 
     <v:case value="0" break="true"> 
      <f:render partial="List/Item_Layout1" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> 
     </v:case> 

     <v:case value="1" break="true"> 
      <f:render partial="List/Item_Layout2" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> 
     </v:case> 

     <v:case value="2" break="true"> 
      <f:render partial="List/Item_Layout3" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> 
     </v:case> 
    </v:switch> 
+0

고마워요 조스트 - 나는 그것을 시도합니다 :) – Adrian