2011-07-18 19 views
7

Tôi muốn có một tiện ích đơn giản cho cột bên phải của mình có thể hiển thị danh sách các bài đăng trên blog gần đây.Làm cách nào để hiển thị danh sách các bài đăng trên blog ở Orchard?

có cách nào dễ dàng để thực hiện việc này ngoài việc tạo tiện ích con của riêng tôi không? Tôi đã tìm kiếm bộ sưu tập cho một và không thể tìm thấy một.

ai đó có thể chỉ cho tôi đúng hướng không?

CHỈNH SỬA: [GIẢI PHÁP]

Đầu tiên tôi đã thêm tiện ích Bài đăng blog gần đây. Sau đó, tôi tạo ra một tập tin Parts.Blogs.recentBlogPosts.cshtml và đặt nó dưới thư mục Views của chủ đề của tôi. Dưới đây là nội dung của tập tin (lấy từ đây: 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> 
} 
+0

Nó đã giúp tôi rất nhiều, cảm ơn –

+0

Cảm ơn bạn đã nêu chi tiết giải pháp. – awrigley

+0

đẹp! Tôi cũng cần phải hiển thị ngày được xuất bản, theo cách nhận biết ngắn, miền địa phương và tóm tắt nội dung bài đăng. (tiện ích bài đăng blog mặc định là ok, nhưng khách hàng của tôi không thích định dạng ngày ...) cảm ơn. – pomarc

Trả lời

4

Tôi đang tìm tại Orchard 1.2 và có một 'Recent Blog Posts Widget' sẵn cho bạn - tất cả các bạn cần làm là thêm nó vào lớp/vùng ưa thích của bạn.

+0

khi tôi thêm tiện ích đó, nó mang lại cho tôi chế độ xem blog đầy đủ. tiêu đề, nội dung, vv Tôi muốn một danh sách các liên kết, giống như cách thức hoạt động của wordpress. – joelnet

+0

Bạn sẽ có thể ghi đè chế độ xem danh sách bài đăng trên blog trong chủ đề của mình. Tạo một khung nhìn mới gọi là Views/Orchard.Blogs/Parts.Blogs.RecentBlogPosts.cshtml và từ đó bạn có thể thay thế '@Display (Model.ContentItems)' hiện tại bằng mã của riêng bạn - có thể một cái gì đó để lặp lại danh sách các bài viết và hiển thị tiêu đề và hiển thị liên kết tới bài đăng (hoặc bản tóm tắt nội dung). Nếu bạn không chắc chắn về việc này, hãy đăng câu hỏi khác ở đây, nơi nó sẽ dễ dàng hơn cho tôi (hoặc người khác) để trả lời :-) – mdm

2

Khác với cách mã hóa chế độ xem của riêng bạn, có hai cách khác để tùy chỉnh nội dung được hiển thị.

  1. Placement.info tệp. bạn có thể cho biết trường nào sẽ hiển thị cho một contentType và/hoặc DisplayType cụ thể (tóm tắt hoặc chi tiết). Bạn cũng có thể cho biết thứ tự hiển thị các trường nào.

Từ tệp mẫu trong chủ đề thememachine.

<Match ContentType="Blog"> 
    <Match DisplayType="Summary"> 
    <Place Parts_Blogs_Blog_Description="Content:before" 
     Parts_Blogs_Blog_BlogPostCount="Meta:3"/> 
    </Match> 
</Match> 
  1. Một hack nhanh chóng là sử dụng CSS để ẩn nội dung bạn không muốn. Tôi đã sử dụng thông tin này cho blogPost siêu dữ liệu trước khi tôi phát hiện vị trí.info

BTW - Tôi không biết liệu bạn có quen thuộc với mô-đun công cụ thiết kế hay không, nhưng nó vô giá!