0

我在 TYPO3 6.2 中使用动态内容元素 (dce) 来构建 Twitter Bootstrap 手风琴元素。
为此,我构建了一个带有存储所有手风琴项目的 section 元素的手风琴 DCE。

现在,Bootstrap 要求我有一种方法可以从每个手风琴项目中引用整个手风琴实例。(这是必需的,因为同一页面上可能有多个手风琴。)

我找到了一种使用 {contentObject.uid} 的方法。这给了我唯一的 DCE 的 TYPO3 内容元素 uid。在每页中有一些从 1 开始的计数器会更好。我想,DCE 拥有类似的东西,但我现在知道如何访问它。

真正的问题是我还需要整个手风琴中每个手风琴项目的唯一 ID。DCE 中应该有一些部分元素 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>

不工作的元素是 {accordion-element.uid}。我尝试了从 {accordion-element.id} 到 {field.accelement.id} 和 {field.accelement.uid} 的任何东西 - 但没有运气。

4

1 回答 1

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}

于 2014-10-05T11:36:55.673 回答