CMS Kit Pro:页面反馈系统
必须拥有ABP Team或更高级许可才能使用CMS Kit Pro模块的功能。
CMS Kit Pro模块提供完整的页面反馈系统,使您能够收集用户对网站页面的宝贵反馈。该系统允许访问者快速评价使用体验并提供评论,帮助您了解用户满意度并识别改进方向。
启用页面反馈系统
所有CMS Kit功能默认处于禁用状态。因此,在使用前需要启用所需功能。您可以使用全局功能系统在开发时启用/禁用CMS Kit功能。或者,您可以使用ABP的功能系统在运行时禁用CMS Kit功能。
查看CMS Kit模块文档的"如何安装"章节了解如何在开发时启用/禁用CMS Kit功能。
用户界面
菜单项
CMS Kit模块管理端在CMS菜单项下添加以下菜单项:
页面反馈:页面反馈管理页面。
CmsKitProAdminMenus类包含菜单项名称的常量定义。
页面
页面反馈
您可以在解决方案的管理端对页面反馈进行列表查看、更新和删除操作,还可以设置接收通知的电子邮件地址。
页面反馈组件
页面反馈系统提供页面反馈组件,供用户发送当前页面的反馈。您可以通过以下方式在页面上放置该组件:
@(await Component.InvokeAsync(typeof(PageFeedbackViewComponent), new PageFeedbackViewDto
{
EntityType = "Page",
}))
PageFeedbackViewDto属性
EntityType:实体类型名称。用于按实体类型对反馈进行分组,例如可按页面、博客文章等进行分组。EntityId:实体ID。用于按实体对反馈进行分组,例如可按博客文章ID、页面ID等进行分组。YesButtonText:是按钮文本。用于更改是按钮的默认文本,默认值为Yes。NoButtonText:否按钮文本。用于更改否按钮的默认文本,默认值为No。UserNotePlaceholder:用户备注占位符。用于更改用户备注输入框的默认占位符。SubmitButtonText:提交按钮文本。用于更改提交按钮的默认文本,默认值为Submit。ReverseButtons:反转按钮顺序。用于反转是和否按钮的显示顺序。ThankYouMessageDescription:感谢消息描述。用于更改默认的感谢消息。ThankYouMessageTitle:感谢消息标题。用于更改感谢消息的默认标题。HeaderVisible:标题可见性。用于隐藏组件的标题部分。HeaderText:标题文本。用于更改标题的默认文本。
页面反馈模态框组件
页面反馈系统提供页面反馈模态框组件,供用户发送当前页面的反馈。您可以通过以下方式在页面上放置该组件:
<button type="button" class="btn btn-primary mb-5" data-bs-toggle="modal" data-bs-target="#page-feedback-modal">
反馈
</button>
@(await Component.InvokeAsync(typeof(PageFeedbackModalViewComponent), new PageFeedbackModalViewDto
{
EntityType = "Page",
ModalId = "page-feedback-modal",
}))
PageFeedbackModalViewDto属性
继承自PageFeedbackViewDto并具有以下附加属性:
ModalId:模态框ID。用于设置模态框的ID,默认值为page-feedback-modal。
页面反馈通知
当用户发送反馈时,页面反馈系统会向配置的电子邮件地址发送邮件通知。您可以从解决方案的管理端配置电子邮件地址。
配置选项
页面反馈系统提供按实体类型对反馈进行分组的机制。例如,您可以按页面、博客文章等对反馈进行分组。
CmsKitPageFeedbackOptions可在领域层中,在模块的ConfigureServices方法中进行配置。
示例:为文章实体类型添加页面反馈支持
Configure<CmsKitPageFeedbackOptions>(options =>
{
options.EntityTypes.Add(new PageFeedbackEntityTypeDefinition("Post"));
});
CmsKitPageFeedbackOptions属性:
EntityTypes:页面反馈系统中定义的实体类型(PageFeedbackEntityTypeDefinition)列表。
PageFeedbackEntityTypeDefinition属性:
EntityType:实体类型名称。DisplayName:实体类型的显示名称。可使用用户友好的显示名称在管理网站中展示实体类型定义。CreatePolicies:允许用户在实体类型下创建标签的策略/权限名称列表。UpdatePolicies:允许用户在实体类型下更新标签的策略/权限名称列表。DeletePolicies:允许用户在实体类型下删除标签的策略/权限名称列表。
内部实现
领域层
聚合
本模块遵循实体最佳实践与规范指南。
PageFeedback
页面反馈是用户对页面发送的反馈。
PageFeedback(聚合根):代表一个页面反馈。
PageFeedbackSetting
页面反馈设置是用于配置页面反馈系统的设置。
PageFeedbackSetting(聚合根):代表页面反馈设置。
仓储
本模块遵循仓储最佳实践与规范指南。
为这些功能定义了以下自定义仓储:
IPageFeedbackRepository:用于获取页面反馈。IPageFeedbackSettingRepository:用于获取页面反馈设置。
领域服务
本模块遵循领域服务最佳实践与规范指南。
页面反馈管理器
PageFeedbackManager用于对PageFeedback和PageFeedbackSetting聚合根执行操作。
应用层
应用服务
PageFeedbackAdminAppService(实现IPageFeedbackAdminAppService):用于在解决方案的管理端管理页面反馈。PageFeedbackPublicAppService(实现IPageFeedbackPublicAppService):用于在解决方案的公共端管理页面反馈。
数据库提供程序
通用配置
表/集合前缀和架构
所有表/集合默认使用Cms前缀。如果需要更改表前缀或设置架构名称(如果数据库提供程序支持),请在CmsKitDbProperties类中设置静态属性。
连接字符串
本模块使用CmsKit作为连接字符串名称。如果未定义此名称的连接字符串,则将回退到Default连接字符串。
有关详细信息,请参阅连接字符串文档。
Entity Framework Core
数据表
- CmsPageFeedbacks
- CmsPageFeedbackSettings
MongoDB
集合
- CmsPageFeedbacks
- CmsPageFeedbackSettings
实体扩展
查看CMS Kit模块文档的"实体扩展"章节了解如何扩展CMS Kit Pro模块投票功能的实体。
抠丁客







