Orchardcms 如何基于当前新闻创建最近新闻列表

Orchardcms 如何基于当前新闻创建最近新闻列表,orchardcms,Orchardcms,我正在研究乌节1.10。目标是设计一个基于它的新闻网站。我有一个问题还没有解决。 这就是如何生成最近的新闻列表以及我当前详细查看的新闻。我的意思是,当我选择一条新闻时,我需要显示Id低于当前新闻Id的其他新闻 欢迎任何建议。谢谢。您可以创建自定义部分并将其附加到新闻内容类型。大概是这样的: public class RecentNewsPart : ContentPart { } public class RecentNewsPartDriver : ContentPartDriver<

我正在研究乌节1.10。目标是设计一个基于它的新闻网站。我有一个问题还没有解决。 这就是如何生成最近的新闻列表以及我当前详细查看的新闻。我的意思是,当我选择一条新闻时,我需要显示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);
        });
    }
public类RecentNewsPart:ContentPart{
}
公共类RecentNewsPartDriver:ContentPartDriver{
私有只读IContentManager\u contentManager;
public RecentNewsPartDriver(IContentManager contentManager){
_contentManager=contentManager;
}
受保护的重写驱动程序结果显示(RecentNewsPart部件、字符串显示类型、动态形状帮助){
返回ContentShape(“Parts\u RecentNewsPart”,()=>{
//或者,不管你的新闻中存储的日期是什么,
//也许只是DUTC的一部分
var currentNewsPart=part.As();
var currentNewsDate=currentNewsPart.Date;
var recentNews=\u contentManager
.查询(“新闻”)
.其中(c=>c.日期<当前新闻日期)
.OrderByDescending(c=>c.Date)
.切片(0,10)
.ToList();
返回形状帮助零件\最新新闻零件(项目:最新新闻);
});
}
Placement.info:

<Match ContentType="News">
    <Place Parts_RecentNewsPart="/AsideSecond:3" />
</Match>


因此您需要显示最新新闻(在小部件中)?听起来几乎和最近的BlogPostWidget一样我同意,但它显示了包括当前帖子在内的所有帖子。我希望在详细查看时,列表会比当前帖子旧。听起来像是一个带有Widget的自定义模块的非常基本的实现。这太棒了。非常感谢