2011-05-12 55 views
1

我試圖渲染的博客文章在此佈局的列表:如何呈現Orchard CMS中博客帖子的各個部分(如標籤)?

[first post - special summary] 
[second post][third post][fourth post] 
[pager] 

我試圖渲染後的第一個自己,然後遍歷其餘項目使用博客文章彙總模板使它們。

一些問題在這裏:

  1. 這是拉斷 佈局我試圖達到或 我應該開始尋找到創建 一個模塊的好方法?
  2. 我應該爲我的特殊第一篇文章 渲染創建一個摘要 模板,我將如何去關於 那?
  3. 如果我繼續使用相同的 路徑,我該如何渲染零件,如標籤 和postdate?

我有這個在我的主題至今: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) 

回答

3

哦,嗨。試試這個:

@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(); 
    var otherPosts = blogPosts.Skip(1).ToList(); 
} 
<h1>@firstPost.Title</h1> 
by <span>@firstPost.ContentItem.CommonPart.Owner.NormalizedUserName</span> 

@Display(New.MyTagShape(Tags: firstPost.ContentItem.TagsPart.CurrentTags)) 

<hr /> 
@Display(New.List().AddRange(otherPosts)) 

然後這是MyTagShape.cshtml代碼:

Here are your tags: 
<ul> 
@foreach (var tag in Model.Tags) { 
    <li>@tag.TagName</li> 
} 
</ul> 

作品在我的機器上。 但正如我在論壇上所說的,您可能想要自定義摘要模板而不是整個列表。

編輯:這裏是你如何將創建的第一個項目不同的模板:http://weblogs.asp.net/bleroy/archive/2011/05/23/orchard-list-customization-first-item-template.aspx

+0

哦,這些類現在無處可去,你可能想將它們移動到新的列表形狀,這是我忽視了這樣做。 – 2011-05-13 01:13:42

相關問題