2016-09-19 7 views
0

Создайте новый тип контента с помощью миграции, добавьте в него поле содержимого, но они не отображаются на панели управления.OrchardCMS - не добавлено содержимое поля для настраиваемого типа контента

Содержание типа просмотра в панели управления:

enter image description here

Что случилось с моим кодом?

public int UpdateFrom2() { 

     var name = "ProductViaCode"; 
     ContentDefinitionManager.AlterPartDefinition(
      string.Format("{0}Part", name), 
       b => b 
        .Attachable() 
        .WithField("ProductId", cfg => cfg 
         .OfType("InputField") 
         .WithDisplayName("Product Id"))); 

     ContentDefinitionManager.AlterTypeDefinition(
      name, cfg => cfg 
      .WithPart(typeof(CommonPart).Name) 
      .WithPart(typeof(AutoroutePart).Name) 
      .WithPart(typeof(BodyPart).Name) 
      .WithPart(typeof(TitlePart).Name) 
      .WithPart(typeof(MenuPart).Name) 
      .Creatable() 
      .Draftable() 
      .Listable() 
      .Securable()); 

     return 3; 
    } 
+1

Кажется, вы забыли добавить свой «ProductViaCodePart» в свой тип. – Xceno

ответ

2

Поскольку @Xceno сказал, что вы не добавили часть своего типа контента. Однако, делая это, он не будет отображаться в разделе «Поля», но под ним в разделе «Запчасти» в разделе «ProductViaCode». Это потому, что вы добавили его в «Часть».

Чтобы он появился в разделе «Поля» в типа, вы можете добавить поле к части с тем же именем типа, а затем добавить эту часть вашего типа:

var name = "ProductViaCode"; 
    ContentDefinitionManager.AlterPartDefinition(

     // Without 'Part' postfix 
     name, 
      b => b 
       .Attachable() 
       .WithField("ProductId", cfg => cfg 
        .OfType("InputField") 
        .WithDisplayName("Product Id"))); 

// Don't forget to add the part to the type 
ContentDefinitionManager.AlterTypeDefinition(name, cfg => cfg 

    .WithPart(name)); 
+0

большое спасибо! Это работает для меня :) – Ievgen

 Смежные вопросы

  • Нет связанных вопросов^_^