2014-10-05 67 views
0

我在TYPO3 6.2中使用動態內容元素(dce)來構建Twitter Bootstrap手風琴元素。
爲此,我建立了一個手風琴DCE,它包含一個存儲所有手風琴項目的節元素。TYPO3 - DCE擴展:獲取當前DCE實例和部分實例的UID

現在Bootstrap要求我有一種方法來引用每個手風琴項目中的整個手風琴實例。 (這是必要的,因爲在同一頁上可能有多個手風琴。)

我發現了一種使用{contentObject.uid}的方法。這給了我DCE的TYPO3內容元素uid,這是唯一的。在每個頁面中有一個從1開始的計數器會更好。我想,DCE擁有類似的東西,但我現在已經知道如何訪問它。

真正的問題是,我還需要爲整個手風琴中的每個手風琴項目提供一個唯一的ID。 DCE中應該有一些section元素uid,但是現在我已經知道它是如何命名的以及如何從流體模板訪問它。

這是我目前DCE流體模板:

{namespace dce=Tx_Dce_ViewHelpers} 
<f:layout name="Default" /> 

<f:section name="main"> 
    <div class="panel-group" id="accordion_{contentObject.uid}"> 
     <f:for each="{field.accelement}" as="accordion-element"> 
      <div class="panel panel-primary"> 
       <button type="button" class="btn btn-primary btn-block" data-toggle="collapse" data-parent="#accordion_{contentObject.uid}" data-target="#collapse_{accordion-element.uid}">{accordion-element.elheadline}</button> 
       <div id="collapse_{accordion-element.uid}" class="panel-collapse collapse"> 
        <div class="panel-body"> 
         {accordion-element.elcontent} 
        </div> 
       </div> 
      </div> 
     </f:for> 
    </div> 
</f:section> 

不工作是{手風琴element.uid}元素。我嘗試了從{accordion-element.id}到{field.accelement.id}和{field.accelement.uid}的任何內容 - 但沒有運氣。

回答

1

好 - 和往常一樣:
休息一會之後,我立即看到了兩個小時前找不到的解決方案。

添加一個屬性爲for-each-loop做魔術。

{namespace dce=Tx_Dce_ViewHelpers} 
<f:layout name="Default" /> 

<f:section name="main"> 
    <div class="panel-group" id="accordion_{contentObject.uid}"> 
     <f:for each="{field.accelement}" key="n" as="accordion-element"> 
      <div class="panel panel-primary"> 
       <button type="button" class="btn btn-primary btn-block" data-toggle="collapse" data-parent="#accordion_{contentObject.uid}" data-target="#collapse_{contentObject.uid}_{n}">{accordion-element.elheadline}</button> 
       <div id="collapse_{contentObject.uid}_{n}" class="panel-collapse collapse"> 
        <div class="panel-body"> 
         {accordion-element.elcontent} 
        </div> 
       </div> 
      </div> 
     </f:for> 
    </div> 
</f:section> 

爲了確保所有的手風琴項目是獨一無二的,即使多個手風琴被放置在同一頁上,我們必須使用contentObject.uid和電流回路密鑰一起:collapse_{contentObject.uid}_{n}