私はオーチャードを学んでいて、いくつかの Pluralsight コースを受講しました。パーツ テンプレートについて説明しましたが、今この記事を読んでいます:テーマの解剖学と呼ばれるセクションがあります:アイテム テンプレート. そして、私は混乱しています。私はこれまでこの概念に出くわしたことがないと思います。違いはなんですか?コンテンツ パーツMovieを持つコンテンツ タイプMovieがあるサンプルを見てみましょう。Part Templateを使用してレンダリング方法をオーバーライドできます。この場合、どこでItem Templateを使用するのでしょうか?
1 に答える
この質問に関して、もう少し詳しくブログ記事を書きました。恥知らずなプラグイン: http://arkleseizure.net/what-the-hell-is-an-item-template
言葉遣いは特に明確ではありませんが、私は同意します。それでは、これを少しクリアできるかどうか見てみましょう...
コンテンツ タイプ: 映画
- タイトルパート
- DirectorPart
- StudioPart
(したがって、3 つのパーツが関連付けられた movie というコンテンツ タイプがあります)。
すべてのパーツを詳細ビューに表示し、TitlePart のみを概要表示に表示したいと考えています。そこで、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 という名前のファイルで Content ゾーンと Movie ゾーンを定義しましょう (これは "Item Template" になります)。
@using Orchard.Utility.Extensions;
<article class="content-item">
<div class="content">
@Display(Model.Content)
</div>
<div class="content">
@Display(Model.Movie)
</div>
</article>
要約用の Content-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 ) を使用してこれらを生成すると、デフォルトのゾーン (ヘッダー、メタ、コンテンツ) が作成されます)。とフッター、私は信じています) および関連する html.)
パーツが適切な場所に表示されるようになったので、タイトルの表示方法を変更する必要があるかもしれません。「パーツ テンプレート」、Parts.Title.cshtml を作成できます。
<h1>Movie: @Model.Title </h1>
要約すると。コンテンツ タイプは、多数のコンテンツ パーツで構成されています。パーツ テンプレートはコンテンツ パーツをオーバーライドし、アイテム テンプレートはゾーンが定義されているコンテンツ タイプのレイアウトをオーバーライドします。Placement.infoは、コンテンツ パーツを表示するゾーンに誘導します。
それが役立つことを願っています!