项目

CMS Kit 专业版模块

您必须拥有 ABP Team 或更高级别许可证 才能使用此模块。

本模块扩展了 开源版 CMS Kit 模块,为您的应用程序增加了额外的内容管理系统功能。

此模块目前支持 MVC / Razor Pages 和 Blazor 用户界面

开源版 CMS Kit 模块提供以下功能:

  • 页面 管理系统,用于管理具有动态 URL 的动态页面。
  • 博客 系统,支持多博客功能,可创建和发布博客文章。
  • 标签 系统,可为任何类型的资源(如博客文章)添加标签。
  • 评论 系统,可为任何类型的资源(如博客文章或产品评论页面)添加评论功能。
  • 表情反应 系统,可为任何类型的资源(如博客文章或评论)添加表情符号反应功能。
  • 评分 系统,可为任何类型的资源添加评分功能。
  • 菜单 系统,用于动态管理公共菜单。
  • 全局资源 系统,用于动态添加全局样式和脚本。
  • 动态小部件 系统,可为页面和博客文章创建动态小部件。
  • 标记项 系统,可使用图标或表情符号标记收藏或重要项目。

CMS Kit 专业版提供以下功能:

  • 新闻通讯 允许用户订阅新闻通讯。
  • 联系表单 允许用户向您发送消息。
  • URL 转发 允许创建指向其他页面或外部网站的 URL。
  • 投票 允许为访客创建简单的投票。
  • 页面反馈 允许用户为您的页面发送反馈。
  • 常见问题 系统,用于创建动态常见问题解答。

点击功能项了解并学习如何使用。查看 模块描述页面 了解模块功能概览。

如何安装

新建解决方案

如果您在创建解决方案时选择了 公共网站 选项,CMS Kit 专业版会预装在 启动模板 中。如果使用 ABP CLI,应指定 --with-public-website 选项,如下所示:

abp new Acme.BookStore --with-public-website

现有解决方案

如果要将 CMS Kit 添加到现有解决方案,可使用 ABP CLI 的 add-module 命令:

abp add-module Volo.CmsKit.Pro

打开 Domain.Shared 项目中的 GlobalFeatureConfigurator 类,在 Configure 方法中添加以下代码,以启用 CMS Kit 模块中的所有开源和商业功能:

GlobalFeatureManager.Instance.Modules.CmsKit(cmsKit =>
{
    cmsKit.EnableAll();
});

GlobalFeatureManager.Instance.Modules.CmsKitPro(cmsKitPro =>
{
    cmsKitPro.EnableAll();
});

或者,您也可以单独启用功能,例如 cmsKit.Comments.Enable();

如果使用 Entity Framework Core,请记得添加新的迁移并更新数据库。

实体扩展

模块实体扩展 系统是一种 高级 扩展系统,允许您为依赖模块的现有实体 定义新属性。它能在单点自动 为实体、数据库、HTTP API 和用户界面添加属性

要扩展 CMS Kit 专业版模块的实体,请打开 DomainShared 项目中的 YourProjectNameModuleExtensionConfigurator 类,并按如下方式修改 ConfigureExtraProperties 方法:

public static void ConfigureExtraProperties()
{
    OneTimeRunner.Run(() =>
    {
        ObjectExtensionManager.Instance.Modules()
            .ConfigureCmsKitPro(cmsKitPro =>
            {
                cmsKitPro.ConfigurePoll(plan => // 扩展 Poll 实体
                {
                    plan.AddOrUpdateProperty<string>( // 属性类型:string
                      "PollDescription", // 属性名称
                      property => {
                        // 验证规则
                        property.Attributes.Add(new RequiredAttribute()); // 为定义的属性添加必需属性

                        // ... 此属性的其他配置
                      }
                    );
                }); 

                cmsKitPro.ConfigureNewsletterRecord(newsletterRecord => // 扩展 NewsletterRecord 实体
                {
                    newsletterRecord.AddOrUpdateProperty<string>( // 属性类型:string
                      "NewsletterRecordDescription", // 属性名称
                      property => {
                        // 验证规则
                        property.Attributes.Add(new RequiredAttribute()); // 为定义的属性添加必需属性
                        property.Attributes.Add(
                          new StringLengthAttribute(MyConsts.MaximumDescriptionLength) {
                            MinimumLength = MyConsts.MinimumDescriptionLength
                          }
                        );

                        // ... 此属性的其他配置
                      }
                    );
                });     
            });
    });
}
  • ConfigureCmsKitPro 方法用于配置 CMS Kit 专业版模块的实体。

  • cmsKit.ConfigurePoll(...) 用于配置 CMS Kit 专业版模块的 Poll 实体。您可以添加或更新 Poll 实体的额外属性。

  • cmsKit.ConfigureNewsletterRecord(...) 用于配置 CMS Kit 专业版模块的 NewsletterRecord 实体。您可以添加或更新 NewsletterRecord 实体的额外属性。

  • 您还可以为定义的属性设置一些验证规则。在上面的示例中,为名为 "NewsletterRecord" 的属性添加了 RequiredAttributeStringLengthAttribute

  • 当您定义新属性时,它会自动添加到 实体HTTP API用户界面 中。

    • 一旦定义属性,它就会出现在相关实体的创建和更新表单中。
    • 新属性也会出现在相关页面的数据表中。
在本文档中