CMS Kit:评论功能
CMS Kit 提供了一套评论系统,可以为博客文章、产品等各类资源添加评论功能。
启用评论功能
CMS Kit功能默认处于禁用状态。因此,在使用前需要先启用所需功能。您可以通过全局功能系统在开发阶段启用/禁用CMS Kit功能,或使用ABP的功能系统在运行时禁用CMS Kit功能。
请参阅CMS Kit模块文档的"如何安装"章节了解开发阶段启用/禁用CMS Kit功能的方法。
配置选项
评论系统提供了按实体类型分组评论定义的机制。例如,若需为博客文章和产品启用评论功能,需要分别创建名为BlogPosts和Product的实体类型,并在这些实体类型下添加评论。
可在领域层的模块ConfigureServices方法中配置CmsKitCommentOptions:
Configure<CmsKitCommentOptions>(options =>
{
options.EntityTypes.Add(new CommentEntityTypeDefinition("Product"));
options.IsRecaptchaEnabled = true; //默认值为false
options.AllowedExternalUrls = new Dictionary<string, List<string>>
{
{
"Product",
new List<string>
{
"https://abp.io/"
}
}
};
});
如果使用博客功能,ABP会自动为博客功能定义实体类型。您可以通过上述示例中的
Configure方法轻松覆写或移除预定义的实体类型。
CmsKitCommentOptions属性说明:
EntityTypes:评论系统中定义的实体类型列表(CmsKitCommentOptions)IsRecaptchaEnabled:启用/禁用评论系统的reCaptcha验证功能。如需使用reCaptcha请设置为trueAllowedExternalUrls:按实体类型指定评论中允许包含的外部URL。若为某实体类型指定此配置,则仅允许包含指定外部URL的评论
CommentEntityTypeDefinition属性说明:
EntityType:实体类型名称
评论组件
评论系统提供评论组件,允许用户在公开网站上对资源发表评论。可通过以下方式在页面中嵌入组件:
@await Component.InvokeAsync(typeof(CommentingViewComponent), new
{
entityType = "Product",
entityId = "...",
isReadOnly = false,
referralLinks = new [] {"nofollow"}
})
其中entityType已在前文说明,entityId在此示例中应为产品的唯一标识符(如Product实体的Id)。referralLinks为可选参数,可用于为链接的rel属性添加值(如"nofollow"、"noreferrer"等)。
用户界面
菜单项
评论功能为管理应用添加以下菜单项:
- 评论管理:打开评论管理页面
页面
评论管理
在此页面可查看和管理评论:
同时可查看和管理回复:
设置
通过设置页面"Cms"标签下的"Comment"选项卡可配置评论审核状态。启用此功能后,可对评论进行审核与驳回,用户仅能查看已通过审核的评论。该功能默认设置为"false"。
内部实现
领域层
聚合根
本模块遵循实体最佳实践与规范。
评论
评论代表用户提交的文本评论:
Comment(聚合根):代表系统中的文本评论
仓储
本模块遵循仓储最佳实践与规范。
为此功能定义的定制仓储:
ICommentRepository
领域服务
本模块遵循领域服务最佳实践与规范。
评论管理器
CommentManager用于执行Comment聚合根的相关操作。
应用层
应用服务
CommentAdminAppService(实现ICommentAdminAppService):实现评论管理系统的用例,如列表展示、删除评论等CommentPublicAppService(实现ICommentPublicAppService):实现公开网站评论管理用例,如展示评论、添加评论等
数据库支持
通用配置
数据表/集合前缀与模式
所有数据表/集合默认使用Cms前缀。如需修改表前缀或设置模式名(取决于数据库提供商支持),可通过设置CmsKitDbProperties类的静态属性实现。
连接字符串
本模块使用CmsKit作为连接字符串名称。若未定义此名称的连接字符串,将回退至Default连接字符串。
详见连接字符串文档。
Entity Framework Core
数据表
- CmsComments
MongoDB
集合
- CmsComments
抠丁客





