2017-04-24 18 views
1

我正在使用Arno Poot的銀條/ simple_news模塊來處理我的SilverStripe 3.5.3 CMS。如何在silverstripe首頁顯示最近的新聞

新聞模塊完美工作,新聞保存並正常顯示。我只是不滿意它在頁面上的顯示方式。

我想在最新的10篇新聞報道的頭版上刊登新聞簡報。但我幾乎沒有文件可以通過。我將如何獲得最新的10篇新聞文章。

我也想創建新聞持有者頁面上的側邊欄,列出了整個新聞檔案,以便/組鏈接:

 
--------------- 
| Year  |  Page Content listing of this month only 
| Month  | 
|  Date | 
| Year  | 
| Month  | 
| Date  | 
-------------- 

...等。 (發佈日期爲dd-MM-yyyy)

我認爲該操作應該是相似的,但由於我在自定義SilverStripe方面有點新,所以我還有很多問題。

回答

5

偉大的問題。內容聯合是SilverStripe開發中真正的基本模式,或者真正的任何內容管理系統。 SilverStripe的一個指導原則是它可以讓你通過編寫一些代碼來創建你想要的東西,而不是給你80%的你想要的東西,在一些交鑰匙,開箱即用的解決方案中。

這裏已經寫了很多。見https://docs.silverstripe.org/en/3/tutorials/extending_a_basic_site/#showing-the-latest-news-on-the-homepage

你想要做的是在你的主頁控制器中創建一個方法,該方法返回一系列文章到你的主頁模板。

public function RecentNews() 
{ 
    return NewsArticle::get()->limit(5); // sort is already handled by default_sort 
} 

然後在模板:

<% loop $RecentNews %> 
$Title/$Date/etc.. 
<% end_loop %> 

你有關今年將它們分組的第二個問題是有點棘手。我在這之前做了一個教程。檢查出https://www.silverstripe.org/learn/lessons/beyond-the-orm-building-custom-sql?ref=hub

不用說,更新所有這些類名稱和字段名稱以反映您正在使用的模塊,例如,文章 - > NewsPage。

+0

按年份分組應該很簡單,使用'GroupedList',請參閱:https://docs.silverstripe.org/en/3.0/howto/grouping-dataobjectsets/ – bummzack

+0

您可能也可以直接在DataList中獲取DataList通過使用'<%loop List('NewsArticle')。Limit(5)%>',但對我來說感覺有點冒險。 – wmk

+0

UncleCheese我已經有興趣地觀看了你的視頻教程。謝謝您的意見。 來自您的文檔的文章幾乎存在,但它基於較早版本的SS CMS。在另一個視頻教程中看到你的版本可以完成,這將是非常有趣的。 – AD5XJ

相關問題