如何根据时事新闻创建近期新闻列表
How to create a recent news list based on current news
我正在开发 Orchard 1.10。目标是基于它设计一个新闻网站。我有一个尚未解决的问题。
这就是如何生成最近的新闻列表以及我当前详细查看的新闻。我的意思是,当我 select 一条新闻时,我需要同时显示 ID 低于当前新闻 ID 的其他新闻。
欢迎任何建议。谢谢。
您可以创建自定义部分并将其附加到新闻内容类型。像这样:
public class RecentNewsPart : ContentPart {
}
public class RecentNewsPartDriver : ContentPartDriver<RecentNewsPart> {
private readonly IContentManager _contentManager;
public RecentNewsPartDriver(IContentManager contentManager) {
_contentManager = contentManager;
}
protected override DriverResult Display(RecentNewsPart part, string displayType, dynamic shapeHelper) {
return ContentShape("Parts_RecentNewsPart", () => {
// or however the date is stored on your news,
// maybe just the CommonPart CreatedUtc
var currentNewsPart = part.As<NewsPart>();
var currentNewsDate = currentNewsPart.Date;
var recentNews = _contentManager
.Query<NewsPart, NewsPartRecord>("News")
.Where(c => c.Date < currentNewsDate)
.OrderByDescending(c => c.Date)
.Slice(0, 10)
.ToList();
return shapeHelper.Parts_RecentNewsPart(Items: recentNews);
});
}
Placement.info:
<Match ContentType="News">
<Place Parts_RecentNewsPart="/AsideSecond:3" />
</Match>
我正在开发 Orchard 1.10。目标是基于它设计一个新闻网站。我有一个尚未解决的问题。 这就是如何生成最近的新闻列表以及我当前详细查看的新闻。我的意思是,当我 select 一条新闻时,我需要同时显示 ID 低于当前新闻 ID 的其他新闻。
欢迎任何建议。谢谢。
您可以创建自定义部分并将其附加到新闻内容类型。像这样:
public class RecentNewsPart : ContentPart {
}
public class RecentNewsPartDriver : ContentPartDriver<RecentNewsPart> {
private readonly IContentManager _contentManager;
public RecentNewsPartDriver(IContentManager contentManager) {
_contentManager = contentManager;
}
protected override DriverResult Display(RecentNewsPart part, string displayType, dynamic shapeHelper) {
return ContentShape("Parts_RecentNewsPart", () => {
// or however the date is stored on your news,
// maybe just the CommonPart CreatedUtc
var currentNewsPart = part.As<NewsPart>();
var currentNewsDate = currentNewsPart.Date;
var recentNews = _contentManager
.Query<NewsPart, NewsPartRecord>("News")
.Where(c => c.Date < currentNewsDate)
.OrderByDescending(c => c.Date)
.Slice(0, 10)
.ToList();
return shapeHelper.Parts_RecentNewsPart(Items: recentNews);
});
}
Placement.info:
<Match ContentType="News">
<Place Parts_RecentNewsPart="/AsideSecond:3" />
</Match>