如何使用新的 API 以编程方式在 Umbraco 中创建新的 MemberType

本文关键字:Umbraco 创建 MemberType 编程 何使用 API 方式 | 更新日期: 2023-09-27 18:36:44

我正在尝试在 Umbraco 中创建一个新的成员类型,如果它尚不存在,它将自动创建。但是,我能找到的唯一用于创建新MemberType的代码被标记为"已过时"。

umbraco.cms.businesslogic.member.MemberType.MakeNew(admin, memberType.Name)

如何使用新的 API 执行此操作?我相信新的 API 可以在命名空间Umbraco.Core.Models下找到。

作为参考,v6+ 的当前文档在这里,但有点缺乏。

如何使用新的 API 以编程方式在 Umbraco 中创建新的 MemberType

遇到了这个问题。我有许多按公司分开的用户,客户希望能够由组一次"取消"批准/删除多个用户。如果我为每个公司创建一个MemberGroup,那么选择它们很容易,因为它们将通过后端成员页面上的下拉菜单进行预排序。

我在做一些事情,好像你看一个当前Member的属性,它实际上是一个DocumentType。因此,在使用Services.ContentTypeService时,我尝试创建一个 新ContentType ,这在 Umbraco 7 中是一个DocumentType .但是你需要一个ParentId来创建它。

我不知道ParentId,所以我试图通过让一个当前成员在组Member中提取它,并以这种方式获得ParentId。但是,该ID -1

如果有人遇到创建MemberGroups的解决方案,我很想知道。

如果您使用的是 umbraco 7,最好使用成员类型服务。以下是您可以采用的简单方法来实现此目的。

public void CreateMemberType(IContentTypeComposition parent, string memberTypeAlias)
{
        IMemberType memberType = new Umbraco.Core.Models.MemberType(parent, memberTypeAlias);
        ApplicationContext.Current.Services.MemberTypeService.Save(memberType);
}

添加成员组

ApplicationContext.Current.Services.MemberService.AddRole("Group Name");