このレイアウトでブログ投稿のリストをレンダリングしようとしています:
[first post - special summary]
[second post][third post][fourth post]
[pager]
最初の投稿を自分でレンダリングしてから、残りのアイテムをループして、ブログ投稿の概要テンプレートを使用してレンダリングしようとしています。
ここにいくつかの質問があります:
- これは、私が達成しようとしているレイアウトを実現するための良い方法ですか、それともモジュールの作成を検討し始める必要がありますか?
- 特別な最初の投稿レンダリング用の要約テンプレートを作成する必要がありますか?それについてはどうすればよいですか?
- 同じパスを続行する場合、タグやポストデートなどのパーツをレンダリングするにはどうすればよいですか?
私のテーマにはこれまでのところこれがあります:Parts.Blogs.BlogPost.List-url-blog.cshtml
@using Orchard.Blogs.Extensions;
@using Orchard.Blogs.Models;
@using Orchard.ContentManagement;
@using Orchard.Utility.Extensions;
@{
IEnumerable<dynamic> blogPosts = Model.ContentItems;
Model.ContentItems.Classes.Add("content-items");
Model.ContentItems.Classes.Add("blog-posts");
var firstPost = blogPosts.FirstOrDefault();
//BlogPart blog = (BlogPart)firstPost.Get(typeof(BlogPart));
}
<h1>@firstPost.Title</h1>
by <span>@firstPost.ContentItem.CommonPart.Owner.NormalizedUserName</span>
@* How do i render tags using the tags part template? *@
@Display(firstPost.Tags)
@Display(firstPost.Parts_Tags_ShowTags)
@Display(firstPost.TagsPart)
@Display(firstPost.ContentItem.TagsPart)
@Display(firstPost.ContentItem.TagsPart.ContentItem)
@* none of the above work *@
<hr />
<ul class="content-items">
@foreach (var post in blogPosts.Skip(1))
{
<li class="content-item-summary">
@Display(post)
</li>
}
</ul>
ボーナスポイント-なぜ私はこのようなことをすることができないのですか?
@Display(blogPosts.Skip(1))
しかし、私はすることができます
@Display(blogPosts)