如何在Orchard中显示博客帖子列表?

时间:2011-07-18 01:52:47

标签: razor widget blogs orchardcms

我想在我的右侧专栏中添加一个简单的小部件,可以显示最近的博客帖子列表。

除了创建自己的小部件之外,还有一种简单的方法吗?我在画廊搜索了一个,但却找不到。

有人能指出我正确的方向吗?

编辑:[解决方案]

首先,我添加了最近的博客帖子小部件。然后我创建了一个文件Parts.Blogs.recentBlogPosts.cshtml并将其放在我主题的Views目录下。这是文件的内容(取自这里:http://weblogs.asp.net/bleroy/archive/2011/03/27/taking-over-list-rendering-in-orchard.aspx

@using Orchard.ContentManagement;
@{
    IEnumerable<object> blogPosts =
        Model.ContentItems.ContentItems;
}
@if (blogPosts == null || blogPosts.Count() < 1) {
    <p>@T("No posts.")</p>
}
else {
    <ul class="content-items">
    @foreach (dynamic post in blogPosts) {
        string title = post.Title;
        ContentItem item = post.ContentItem;
        <li class="content-item-summary">
            @Html.ItemDisplayLink(title, item)
        </li>
    }
    </ul>
}

2 个答案:

答案 0 :(得分:4)

我正在查看Orchard 1.2,并且有一个“最近的博客帖子小工具” - 您需要做的就是将它添加到您首选的图层/区域。

答案 1 :(得分:2)

除了编码您自己的视图外,还有另外两种方法可以自定义显示的内容。

  1. Placement.info档案。您可以告诉它为给定的contentType和/或DisplayType(摘要或详细信息)显示哪些字段。您还可以告诉它显示字段的顺序。
  2. 来自thememachine主题的示例文件。

    <Match ContentType="Blog">
      <Match DisplayType="Summary">
        <Place Parts_Blogs_Blog_Description="Content:before"
             Parts_Blogs_Blog_BlogPostCount="Meta:3"/>
      </Match>
    </Match>
    
    1. 快速破解是使用CSS隐藏您不想要的内容。在我发现placement.info
    2. 之前,我将此用于blogPost元数据 BTW - 我不知道你是否熟悉设计师工具模块,但这是非常宝贵的!