2013-10-15 69 views
0

我在學習果園,我做了一些Pluralsight課程。它涵蓋了部分模板,但現在我正在閱讀這篇文章:Anatomy of a theme並且有一個部分叫做:項目模板。我很困惑。我想我以前沒有遇到過這個概念。有什麼不同?讓我們來看一個示例,我有一個內容類型電影內容部分電影。我可以覆蓋它是如何使用部件模板呈現的。那麼在這種情況下,我會使用項目模板果園裏的項目模板和零件模板

回答

2

寫了一篇關於這個問題的更詳細的博文。無恥插頭:http://arkleseizure.net/what-the-hell-is-an-item-template

措辭不是特別清楚我會同意。因此,讓我們看看我們是否可以清除這件事有點......

內容類型:電影

  • TitlePart
  • DirectorPart
  • StudioPart

(所以,你有一個內容類型所謂的電影與3部分附加到它)。

我們希望所有零件都顯示在詳細視圖中,只有標題欄顯示在摘要顯示中。因此,我們使用placement.info

<Match ContentType="Movie"> 
    <Match DisplayType="Summary"> 
    <Place Parts_TitlePart="Summary:1" /> 
    <Place Parts_DirectorPart="-" /> 
    <Place Parts_StudioPart="-" /> 
    </Match> 

    <Match DisplayType="Detail"> 
    <Place Parts_TitlePart="Content:1" /> 
    <Place Parts_DirectorPart="Movie:1" /> 
    <Place Parts_StudioPart="Movie:2" /> 
    </Match> 
</Match> 

(用於清晰明確的符號)

放置基本上定義您的內容部分將放在爲內容類型。 「摘要」,「內容」和「電影」是內容項目中的「區域」,您可以將其分配給某些內容以便顯示它們。所以,讓我們繼續,在一個名爲Content-Movie.Detail.cshtml(這將是一個「Item Template」)的文件中定義我們的Content和Movie區域。

@using Orchard.Utility.Extensions; 

<article class="content-item"> 
    <div class="content"> 
    @Display(Model.Content) 
    </div> 
    <div class="content"> 
    @Display(Model.Movie) 
    </div> 
</article> 

而且一個總結,內容Movie.Summary.cshtml

@using Orchard.Utility.Extensions; 

<article class="content-item"> 
    <div class="content"> 
     @Display(Model.Summary) 
    </div> 
</article> 

(您可以使用形狀跟蹤工具(http://docs.orchardproject.net/Documentation/Customizing-Orchard-using-Designer-Helper-Tools)來生成這些給你,它會創建默認的區域(頭,Meta,內容和頁腳,我相信)和相關的html。)

我們的部分現在應該顯示在正確的地方,我們可能想要改變標題的顯示方式。所以我們可以創建一個「Part Template」Parts.Title.cshtml

<h1>Movie: @Model.Title </h1> 

所以總之。 內容類型由大量的內容部分組成。 部件模板覆蓋內容部件和項目模板將覆蓋內容類型的佈局,其中區域已定義。 Placement.info將內容部分直接指向要顯示的區域。

希望有幫助!