2013-06-20 53 views
0

我使用Typo3 6.0和新聞系統2.0。 我有一個使用流體viewhelpers的自定義模板,並根據他們的類別顯示來自我的數據庫的新聞。 到目前爲止好,沒問題。Typo3 - 流體 - 每個newsItem.uid

我的問題是,我想循環所有的新聞記錄(這是在表tx_news_domain_model_news),所以我可以使用條件來過濾哪些顯示,但到目前爲止,似乎我的企圖是徒勞的。

爲什麼可以遍歷新聞類別是這樣的:

<f:for each="{newsItem.categories}" as="category"> 
    <f:if condition="{category.uid} == 9"> 
      {category.title} #this is displayed correctly. 
    </f:if> 
</f:for> 

但是當我通過newsItem.uid嘗試循環,它不工作?

<f:for each="{newsItem.uid}" as="pub"> 
     <f:if condition="{pub} == 5"> 
      {pub.title} 
     </f:if> 
</f:for> 

謝謝你的時間。

+0

新聞項目只有一個UID,那麼,爲什麼你通過它循環?而且,你想用這一切來達到什麼目的? – Shufla

+0

@Shufla嗯,我想循環一個自定義字段,這是一個數字,所以我可以將它與另一個進行比較。看起來我無法循環使用自定義字段,它只是不起作用,所以我想用另一種方式使用uid,以爲我可以使用它來訪問我的自定義字段,但我想我並不完全理解ForViewHelper with News ...我該怎麼辦? – user2179985

回答

1

你搞砸了一些事情(實際上@Shufla告訴過)。

for each聲明在所有語言中允許您迭代某種集合。在這種情況下,每個newsItem可以連接一些categories,因此您可以爲每個項目遍歷其類別(它們是對象)。在僞代碼是這樣的:

<f:for each="[cat1,cat2,cat3]" as="currentObject"> 
    {currentObject.property} 
</f:for> 

UID在TYPO3始終是一個整數,而且是唯一的,所以沒有可能來遍歷它,導致僞代碼看起來像這樣(一定會失敗):

<f:for each="1" as="currentObject"> 
    {currentObject.property} 
</f:for> 

我不知道新聞觀點,但是我只是認爲這將工作:

<f:for each="{news}" as="pub"> 
     <f:if condition="{pub.uid} == 5"> 
      {pub.title} 
     </f:if> 
</f:for> 

但是請確保您不執行 - 嵌套迭代再次,也許你有你在默認情況下需要爭奪w的迭代呢?

編輯

,你可以看到newsItem被傳遞到列表/項目從新聞/ List.html視圖(文件夾模板)重複部分,所以你不能夠重複這個迭代的部分作爲你只有一個新聞目標可用。

如果你想/需要做一些有條件的迭代做鑑於:/typo3conf/ext/news/Resources/Private/Templates/News/List.html

+0

感謝您的回答。顯然我有點搞砸了。無論如何,我不明白的是,你justed張貼: {pub.title} 應該工作正常嗎?但在我的情況下,它不起作用,並且我的tx_news_domain_model_news表中有一個與uid 5相關的新聞。到目前爲止,它只在我嘗試循環類別時才起作用。你知道爲什麼嗎 ?還有什麼我可以做,如果我想循環我的新聞記錄? – user2179985

+0

我已經過濾了我想要顯示的消息的原因,我試圖循環顯示模板中的消息,如下所示:settings 位置= 4 startingpoint = 30 categories = 8 },但我需要提出一個特殊的條件,所以我想我可以在模板中循環來做到這一點,這有可能嗎? – user2179985

+0

@ user2179985:檢查我的編輯 – biesior