Views: 5470
Number of votes: 9
Average rating:

Typed tabs/groups

Currently in the typed model you are limited to defining sort order on individual content types and properties. The order defined then indirectly defines in which order groups are displayed when creating new content, and in which order the tabs are shown when editing content in the forms view. Normally you define groups as a list of constants that you use in the DisplayAttribute:

[ContentType(GroupName=GroupNames.News, Order=1)]
public class ArticlePage : PageData
{
  [Display(GroupName = GroupNames.Contact)]
  public virtual ContentReference Image { get; set; }
}

public static class GroupNames
{
   public const string News = "News";
   public const string Contact= "Contact";
}

In CMS 8 we are adding support for defining order and required access on the groups themselves. Just decorate the class:

 [GroupDefinitions]
public static class GroupNames
{
   [Display(GroupName="MyNews", Order=1)]
   public const string News = "News";
   [RequiredAccess(AccessLevel.Publish)]
   public const string Contact= "Contact";
}

Groups that do not have any order defined will fallback to the indirect sorting and will have sort index set to -1. It is also possible to override built-in groups to change sort order, for example:

[GroupDefinitions]
public static class GroupNames
{
    [Display(Order = 1000)]
    public const string Content = SystemTabNames.Content;
}


See SDK article Grouping content types and properties for more details.

  Please login to post a comment