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
Twitter bootstrap 打字3–;DCE扩展:获取当前DCE实例和节实例的UID_Twitter Bootstrap_Typo3_Fluid_Typo3 6.2.x - Fatal编程技术网

Twitter bootstrap 打字3–;DCE扩展:获取当前DCE实例和节实例的UID

Twitter bootstrap 打字3–;DCE扩展:获取当前DCE实例和节实例的UID,twitter-bootstrap,typo3,fluid,typo3-6.2.x,Twitter Bootstrap,Typo3,Fluid,Typo3 6.2.x,我正在使用TYPO3 6.2中的动态内容元素(dce)构建Twitter引导手风琴元素。 为此,我构建了一个accordiondce,其中包含一个存储所有accordion项目的section元素 现在,Bootstrap要求我有一种从每个accordion项中引用整个accordion实例的方法。(这是必需的,因为同一页上可能有多个手风琴。) 我找到了一种使用{contentObject.uid}实现这一点的方法。这给了我DCE的TYPO3内容元素uid,它是唯一的。最好每页都有一个从1开始的

我正在使用TYPO3 6.2中的动态内容元素(dce)构建Twitter引导手风琴元素。
为此,我构建了一个accordiondce,其中包含一个存储所有accordion项目的section元素

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

我找到了一种使用{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>
{namespace dce=Tx\u dce\u viewerhelpers}
{accordion元素.elheadline}
{accordion element.elcontent}
不工作的元素是{accordion element.uid}。我尝试了从{accordion element.id}到{field.accelement.id}和{field.accelement.uid}的任何东西,但没有成功。

好吧,像往常一样:
休息了一会后,我立即看到了两个小时前找不到的解决办法

在for each循环中添加一个key属性可以发挥神奇的作用

{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>
{namespace dce=Tx\u dce\u viewerhelpers}
{accordion元素.elheadline}
{accordion element.elcontent}
为了确保即使多个手风琴放在同一页上,所有手风琴项目都是唯一的,我们必须同时使用contentObject.uid和当前循环键:
collapse{contentObject.uid}{n}