项目

CMS Kit Pro:页面反馈系统

必须拥有ABP Team或更高级许可才能使用CMS Kit Pro模块的功能。

CMS Kit Pro模块提供完整的页面反馈系统,使您能够收集用户对网站页面的宝贵反馈。该系统允许访问者快速评价使用体验并提供评论,帮助您了解用户满意度并识别改进方向。

cmskit-module-page-feedback-widget

启用页面反馈系统

所有CMS Kit功能默认处于禁用状态。因此,在使用前需要启用所需功能。您可以使用全局功能系统在开发时启用/禁用CMS Kit功能。或者,您可以使用ABP的功能系统在运行时禁用CMS Kit功能。

查看CMS Kit模块文档的"如何安装"章节了解如何在开发时启用/禁用CMS Kit功能。

用户界面

菜单项

CMS Kit模块管理端在CMS菜单项下添加以下菜单项:

页面反馈:页面反馈管理页面。

CmsKitProAdminMenus类包含菜单项名称的常量定义。

页面

页面反馈

您可以在解决方案的管理端对页面反馈进行列表查看、更新和删除操作,还可以设置接收通知的电子邮件地址。

page-feedback-page page-feedback-view-page page-feedback-edit-page page-feedback-settings-page

页面反馈组件

页面反馈系统提供页面反馈组件,供用户发送当前页面的反馈。您可以通过以下方式在页面上放置该组件:

@(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

页面反馈通知

当用户发送反馈时,页面反馈系统会向配置的电子邮件地址发送邮件通知。您可以从解决方案的管理端配置电子邮件地址。

page-feedback-settings-page

配置选项

页面反馈系统提供按实体类型对反馈进行分组的机制。例如,您可以按页面、博客文章等对反馈进行分组。

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用于对PageFeedbackPageFeedbackSetting聚合根执行操作。

应用层

应用服务

  • PageFeedbackAdminAppService(实现IPageFeedbackAdminAppService):用于在解决方案的管理端管理页面反馈。
  • PageFeedbackPublicAppService(实现IPageFeedbackPublicAppService):用于在解决方案的公共端管理页面反馈。

数据库提供程序

通用配置

表/集合前缀和架构

所有表/集合默认使用Cms前缀。如果需要更改表前缀或设置架构名称(如果数据库提供程序支持),请在CmsKitDbProperties类中设置静态属性。

连接字符串

本模块使用CmsKit作为连接字符串名称。如果未定义此名称的连接字符串,则将回退到Default连接字符串。

有关详细信息,请参阅连接字符串文档。

Entity Framework Core

数据表
  • CmsPageFeedbacks
  • CmsPageFeedbackSettings

MongoDB

集合
  • CmsPageFeedbacks
  • CmsPageFeedbackSettings

实体扩展

查看CMS Kit模块文档的"实体扩展"章节了解如何扩展CMS Kit Pro模块投票功能的实体。

在本文档中