每个博客系统为了吸引更多访问量,一般都会在首页或侧边栏列举一些最新文章/随笔以获取更多点击。其实也就是查询出最新的几篇文章并按照简练的方式呈现,比如一般都只有标题及其对应的链接,有时也会标注一下作者和发布时间等。
Orchard其实最初是以博客系统作为基点扩展出来CMS, 当然这一常见的"Recent Blog Posts" Widget也是必须有的了。不过遗憾的是,其呈现方式是跟列表模式一样一样的,大段的摘要也包含在内。
今天跟大家分享的就是如何定制一个全新的最新文章的展现UI:
首先找到当前运用的主题theme目录, 比如默认的主题目录$ROOT/Themes/TheThemeMachine, 然后找到Views目录,新建一个文件"Parts.Blogs.RecentBlogPosts.cshtml", 文本编辑器打开并添加:
@using Orchard.ContentManagement;
@{
IEnumerable<object> blogPosts =
Model.ContentItems.ContentItems;
}
@if (blogPosts == null || blogPosts.Count() < 1) {
<p>@T("暂时没有最新随笔。")</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>
}
小提示: 其实你可以在博客模块目录$ROOT/Modules/Orchard.Blogs/Views/找到原始的Parts.Blogs.RecentBlogPosts.cshtml。
技巧: 在Orchard中你会经常用到这一表达式 @T("直接输入的提示信息等等")
题外话:
目前为止还是国外对Orchard的介绍和研究比较丰富, 特别是Stackoverflow,你可找到很多问题的解决方案 -
http://stackoverflow.com/questions/tagged/orchardcms
如何在Orchard使用Razor语法 - http://www.cnblogs.com/zhoujg/archive/2011/03/07/1973324.html