如何在 Orchard 中显示博客文章列表?

发布于 11-25 07:05 字数 1005 浏览 2 评论 0原文

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

除了创建自己的小部件之外,还有其他简单的方法可以做到这一点吗?我在画廊里搜索过一张,但没找到。

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

编辑:[解决方案]

首先,我添加了“最近的博客文章”小部件。然后我创建了一个文件 Parts.Blogs.recentBlogPosts.cshtml 并将其放置在主题的 Views 目录下。这是文件的内容(取自此处:http://weblogs.asp.net/bleroy/archive/2011/03/27/take-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>
}

I want a simple widget for my right side column that can display a list of recent blog posts.

is there an easy way to do this other than creating my own widget? i've searched the gallery for one and wasn't able to find one.

can someone point me in the right direction?

EDIT: [SOLUTION]

First I added the Recent Blog Posts widget. Then I created a file Parts.Blogs.recentBlogPosts.cshtml and placed it under the Views directory of my theme. Here's the contents of the file (taken from here: 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>
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云朵有点甜2024-12-02 07:05:20

我正在查看 Orchard 1.2,有一个“最近的博客文章小部件”可供您使用 - 您所需要做的就是将其添加到您首选的图层/区域。

I'm looking at Orchard 1.2 and there is a 'Recent Blog Posts Widget' available to you - all you need to do is add it to your preferred layer/zone.

眼泪都笑了2024-12-02 07:05:20

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

  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 隐藏您不需要的内容。在我发现 place.info 之前,我将其用于 blogPost 元数据 顺便说

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

Other than coding your own view, there are two other ways to customize what is shown.

  1. Placement.info file. you can tell it what fields to show for a given contentType and/or DisplayType (summary or detail.) You can also tell it what order to display the fields.

From the sample file in the thememachine theme.

<Match ContentType="Blog">
  <Match DisplayType="Summary">
    <Place Parts_Blogs_Blog_Description="Content:before"
         Parts_Blogs_Blog_BlogPostCount="Meta:3"/>
  </Match>
</Match>
  1. A quick hack is to use CSS to hide the content you don't want. I used this for blogPost metadata before I discovered the placement.info

BTW - I don't know if your familiar with the designer tools module, but it's invaluable!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文