项目

CMS Kit Pro:新闻通讯系统

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

CMS Kit 提供新闻通讯系统,允许用户订阅新闻通讯。以下是新闻通讯订阅小部件的截图:

cmskit-module-newsletter-widget

启用新闻通讯系统

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

请查看 CMS Kit 模块文档的“如何安装”部分,了解如何在开发时启用/禁用 CMS Kit 功能。

用户界面

菜单项

新闻通讯:打开新闻通讯订阅管理页面。

页面

新闻通讯

在解决方案的管理端,您可以查看订阅者并将列表导出为 CSV 文件:

newsletter-page

邮件偏好管理

您(以及公共 Web 应用程序的用户)可以通过访问解决方案公共端的邮件偏好页面/cms/newsletter/email-preferences)来管理邮件偏好并取消订阅新闻通讯:

manage-email-preferences

新闻通讯订阅小部件

新闻通讯订阅系统提供了一个新闻通讯订阅小部件,允许用户订阅新闻通讯。 您可以简单地将小部件放置在页面上,如下所示:

@await Component.InvokeAsync(
  typeof(NewsletterViewComponent),
  new
  {
      preference = "TechNewsletter",
      source = "Footer",
      requestAdditionalPreferencesLater = false
  })

在添加新闻通讯组件时,您可以指定 source 参数以了解用户订阅新闻通讯的来源。查看选项以了解偏好设置。

选项

在使用新闻通讯系统之前,您需要定义偏好设置。您可以使用 NewsletterOptions 类型来定义偏好设置。NewsletterOptions 可以在域层中配置,位于模块的 ConfigureServices 方法中。

示例:

options.AddPreference("TechNewsletter",
    new NewsletterPreferenceDefinition(
        "每日技术新闻通讯",
        privacyPolicyConfirmation: "我接受 <a href='/privacy-policy'>隐私政策</a>。")
    )
);

NewsletterOptions 属性:

  • Preferences:新闻通讯系统中定义的新闻通讯偏好设置列表(NewsletterPreferenceDefinition)。
  • WidgetViewPath:所有新闻通讯偏好设置的默认视图路径。

NewsletterPreferenceDefinition 属性:

  • Preference:偏好设置的名称。在 UI 上显示新闻通讯组件时,我们将使用此字段。
  • PrivacyPolicyConfirmation:在新闻通讯订阅小部件中显示的隐私政策确认文本。
  • AdditionalPreferences:用户订阅新闻通讯后将显示的附加偏好设置列表。
  • WidgetPath:如果您想使用不同的新闻通讯小部件而不是默认小部件,可以使用此字段指定新闻通讯小部件路径。

内部实现

域层

聚合

此模块遵循实体最佳实践与约定指南。

NewsletterRecord

新闻通讯记录代表特定电子邮件地址的新闻通讯订阅。

  • NewsletterRecord(聚合根):代表系统中的新闻通讯订阅。

存储库

此模块遵循存储库最佳实践与约定指南。

为此功能定义了以下自定义存储库:

  • INewsletterRecordRepository

域服务

此模块遵循域服务最佳实践与约定指南。

新闻通讯记录管理器

NewsletterRecordManager 用于对 NewsletterRecord 聚合根执行某些操作。

应用层

应用服务

  • NewsletterRecordAdminAppService(实现 INewsletterRecordAdminAppService):实现新闻通讯订阅管理的用例。
  • NewsletterRecordPublicAppService(实现 INewsletterRecordPublicAppService):实现公共网站新闻通讯订阅的用例。

数据库提供程序

通用

表/集合前缀和架构

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

连接字符串

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

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

Entity Framework Core

  • CmsNewsletterRecords
    • CmsNewsletterPreferences

MongoDB

集合
  • CmsNewsletterRecords

实体扩展

请查看 CMS Kit 模块文档的“实体扩展”部分,了解如何扩展 CMS Kit Pro 模块新闻通讯功能的实体。

在本文档中