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" 的属性添加了
RequiredAttribute和StringLengthAttribute。当您定义新属性时,它会自动添加到 实体、HTTP API 和 用户界面 中。
- 一旦定义属性,它就会出现在相关实体的创建和更新表单中。
- 新属性也会出现在相关页面的数据表中。
抠丁客


