【问题标题】:How can I display a list of blog posts in Orchard?如何在 Orchard 中显示博客文章列表?
【发布时间】:2011-07-18 01:52:47
【问题描述】:

我想要一个简单的小部件用于我的右侧栏,它可以显示最近的博客文章列表。

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

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

编辑:[解决方案]

首先,我添加了“最近的博客文章”小部件。然后我创建了一个文件 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>
}

【问题讨论】:

  • 感谢您详细介绍解决方案。
  • 不错!我还需要以简短的、语言环境感知的方式显示发布日期以及帖子正文的摘要。 (默认的博客文章小部件还可以,但我的客户不喜欢日期格式...)谢谢。

标签: razor widget blogs orchardcms


【解决方案1】:

我正在查看 Orchard 1.2,您可以使用“最近的博客文章小部件” - 您只需将其添加到您的首选图层/区域即可。

【讨论】:

  • 当我添加那个小部件时,它会给我完整的博客视图。标题、内容等。我想要一个链接列表,有点像 wordpress 的工作方式。
  • 您应该能够覆盖主题中的博客文章列表视图。创建一个名为 Views/Orchard.Blogs/Parts.Blogs.RecentBlogPosts.cshtml 的新视图,然后您可以从那里用您自己的代码替换当前的@Display(Model.ContentItems) - 也许可以迭代帖子列表并显示标题并显示链接到帖子(或内容摘要)。如果您不确定这样做,请在此处发布另一个问题,以便我(或其他人)更容易回答:-)
【解决方案2】:

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

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

来自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 之前,我将它用于blogPost 元数据

顺便说一句 - 我不知道您是否熟悉设计器工具模块,但它非常宝贵!

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多