【问题标题】:How do you programmatically create a new MemberType in Umbraco with the new API如何使用新 API 在 Umbraco 中以编程方式创建新的 MemberType
【发布时间】:2015-01-08 01:12:19
【问题描述】:

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

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

如何使用新的 API 做到这一点?我相信新的 API 是在命名空间 Umbraco.Core.Models 下找到的。

供参考current documentation for v6+ is here但有点欠缺。

【问题讨论】:

    标签: c# umbraco umbraco7


    【解决方案1】:

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

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

    我不知道ParentId,所以我尝试通过获取组中的当前成员Member 并以这种方式获取ParentId 来提取它。但是,ID 是-1。

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

    【讨论】:

      【解决方案2】:

      如果您使用 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");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多