2017-08-19 43 views
0

我正在使用卓越的DCE擴展並希望通過使用每個子項的字段的Child-DCE在容器中循環兩次。DCE Con​​tainer Loop

僞代碼是這樣的: 集裝箱模板:

<div id="foo"> 
<f:for each="{dces}" as="dce"> 
    {dce.fields.title} 
</f:for> 
</div> 
<div id="bar"> 
<f:for each="{dces}" as="dce"> 
    {dce.fields.bla} 
</f:for></div> 

我怎麼能這樣做?

回答

0

我已經解決了視圖助手的問題:

class DcevalViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper { 
    /** 
     * @param ArminVieweg\Dce\Domain\Model\Dce object 
     * 
     * @return array 
     * 
     */ 
    public function render($dce) { 
     $contentObject = $dce->getContentObject(); 
     $temp = GeneralUtility::xml2array($contentObject['pi_flexform']); 
     $temp = $temp['data']['sheet.tabGeneral']['lDEF']; 
     foreach($temp as $key=>$val) { 
     preg_replace("/\r|\n/", "", $val['vDEF']); 
     $dcedata[substr($key,9)]=$val['vDEF']; 
     } 
     $dcedata['uid']=$contentObject['uid']; 
     return $dcedata; 
     } 
    } 

而在Containertemplate(不需要一個子模板)

{namespace dce=ArminVieweg\Dce\ViewHelpers} 
{namespace tom=Mediagmbh\Tomediavh\ViewHelpers} 

<f:layout name="DefaultContainer" /> 

<f:section name="main"> 
<div id="foo"> 
<ul> 
<f:for each="{dces}" as="dce"> 
    <f:alias map="{field:'{tom:Dceval(dce:dce)}'}"> 
    <li>{field.header}</li> 
    </f:alias> 
</f:for> 
</ul> 
</div 

<div id="bar"> 
<f:for each="{dces}" as="dce"> 
    <f:alias map="{field:'{tom:Dceval(dce:dce)}'}"> 
    <div><f:format.raw>{field.text}</f:format.raw></div> 
    </f:alias> 
</f:for> 
</div> 
</div> 

</f:section>