2014-02-18 60 views
1

在一個新的Typo3安裝中,我有一個這樣的模板。現在如何將數組傳遞給FLUIDTEMPLATE?

page = PAGE 
page { 

    10 = FLUIDTEMPLATE 
    10 { 
     file = fileadmin/default/templates/index.html 
     ... 

     variables { 
      ... 

      myPages = CONTENT 
      myPages { 
       table = pages 
       select { 
        pidInList = 76 
        orderBy = sorting 
       } 
      } 
     } 
    } 
} 

我想遍歷我fluidtemplate的網頁是這樣的:

<f:for each="{myPages}" as="page"> 
    <f:format.raw>{page.title}</f:format.raw> 
</f:for> 

不幸的是,如果我做了一個 <f:debug title="debugger">{myPages}</f:debug> 它表明這是一個空字符串。

如何將我選擇的內容對象的結果數組傳遞給FLUIDTEMPLATE?

UPDATE:

我解決它創建一個自定義視圖助手,它返回一個給定的parentId頁的數組。結果存儲在流體變量中。在模板

class Tx_Custom_ViewHelpers_Pages_GetViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper { 

    /** 
    * Gets subpages for a given page. 
    * 
    * @param int $parentId ID of the parentpage. 
    * @param string $target Target Variable 
    */ 
    public function render($parentId, $target='content') { 
     $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'pages', 'pid=' . $parentId); 
     if ($this->templateVariableContainer->exists($target) === TRUE) { 
      $this->templateVariableContainer->remove($target); 
     } 
     $this->templateVariableContainer->add($target, $rows); 
    } 

} 

用法:

{namespace cn=Tx_Custom_ViewHelpers} 

<cn:pages.get parentId="{parentId}" target="pages"/> 
<f:for each="{pages}" as="p"> 
    page: {p.title} 
</f:for> 

剩餘的TypoScript:

page = PAGE 
page { 

    10 = FLUIDTEMPLATE 
    10{ 
     file = fileadmin/default/templates/index.html 
     layoutRootPath = fileadmin/default/templates/layouts/ 
     partialRootPath = fileadmin/default/templates/partials/ 

     variables { 
      content < styles.content.get 
      parentId = TEXT 
      parentId.value = 76 
     } 
    } 

} 
+0

內容對象不是一個數組...所以本雅明的答案意見適用。 – lorenz

回答

1

由於TYPO3 6.1可以將數組分配給變量的設置:

lib.globalSettings { # Access to constants works, too. 
    foo = value 
} 

page = PAGE 
page.10 = FLUIDTEMPLATE 
page.10 { 
    file = fileadmin/templates/MyTemplate.html 
    settings < lib.globalSettings 
} 

http://jweiland.net/typo3/versionen-und-updates/version-61.html#c4300 http://forge.typo3.org/issues/23853

+0

不幸的是,關於這個問題的最後評論是正確的。最初的問題根本沒有解決。請參閱:http://forge.typo3.org/issues/23853#note-9 仍然無法將'myPages'的結果作爲數組傳遞給模板。 – rgroli

+2

也許你可以使用fedext vhs record-view-helper: https://fedext.net/viewhelpers/vhs/master/Resource/RecordViewHelper.html 我沒有看到排序選項,也許你必須添加你自己。 作爲替代,你當然也可以寫你自己的viewhelper .. – Benjamin

+0

感謝你給我的方向@Benjamin。我實際上是通過編寫自己的視圖來解決這個問題的。這也使我能夠完全擺脫輸入框中的內容對象。 – rgroli