如何加载相关博客post?
How to load related blog post?
我使用 Orchard CMS。我的页面中有两个 DIV。在第一个 DIV 中找到了博客 post 的详细信息。我想在另一个 DIV.
中找到相同的分类 post
我该怎么做?
要为系统中的所有帖子动态实现此目的,您可以将新部分附加到名为 RelatedPostsPart
的 BlogPost
类型,然后使用以下驱动程序:
protected override DriverResult Display(RelatedPostsPart part, string displayType, dynamic shapeHelper) {
return ContentShape("Parts_Blogs_RelatedPosts", () => {
// To prevent infinite loop
if (!displayType.Equals("Detail", StringComparison.OrdinalIgnoreCase)) {
return null;
}
var blogPast = part.As<BlogPostPart>();
if (blogPast == null || blogPast.BlogPart == null) {
return null;
}
var blog = blogPast.BlogPart;
// You can set the count in blog post settings to be configurable
var blogPosts = _contentManager.Query(VersionOptions.Published, "BlogPost")
.Join<CommonPartRecord>().Where(cr => cr.Container.Id == blog.Id && cr.Id != part.Id)
.OrderByDescending(cr => cr.CreatedUtc)
.Slice(0, 5)
.Select(ci => ci.As<BlogPostPart>());
var list = shapeHelper.List();
list.AddRange(blogPosts.Select(bp => _contentManager.BuildDisplay(bp, "Summary")));
var blogPostList = shapeHelper.Parts_Blogs_BlogPost_List(ContentItems: list);
return shapeHelper.Parts_Blogs_RelatedPosts(ContentItems: blogPostList, Blog: blog);
});
}
我们使用这个模块Related Content,认为它符合您的需求。
我该怎么做?
要为系统中的所有帖子动态实现此目的,您可以将新部分附加到名为 RelatedPostsPart
的 BlogPost
类型,然后使用以下驱动程序:
protected override DriverResult Display(RelatedPostsPart part, string displayType, dynamic shapeHelper) {
return ContentShape("Parts_Blogs_RelatedPosts", () => {
// To prevent infinite loop
if (!displayType.Equals("Detail", StringComparison.OrdinalIgnoreCase)) {
return null;
}
var blogPast = part.As<BlogPostPart>();
if (blogPast == null || blogPast.BlogPart == null) {
return null;
}
var blog = blogPast.BlogPart;
// You can set the count in blog post settings to be configurable
var blogPosts = _contentManager.Query(VersionOptions.Published, "BlogPost")
.Join<CommonPartRecord>().Where(cr => cr.Container.Id == blog.Id && cr.Id != part.Id)
.OrderByDescending(cr => cr.CreatedUtc)
.Slice(0, 5)
.Select(ci => ci.As<BlogPostPart>());
var list = shapeHelper.List();
list.AddRange(blogPosts.Select(bp => _contentManager.BuildDisplay(bp, "Summary")));
var blogPostList = shapeHelper.Parts_Blogs_BlogPost_List(ContentItems: list);
return shapeHelper.Parts_Blogs_RelatedPosts(ContentItems: blogPostList, Blog: blog);
});
}
我们使用这个模块Related Content,认为它符合您的需求。