2016-05-03 3 views
0

Ich versuche, eine Taxonomie zu einem benutzerdefinierten Typ in Orchard cms hinzuzufügen.Orchard CMS 1.10 Hinzufügen von Taxonomie mit Migration in einem benutzerdefinierten Teil

ContentDefinitionManager.AlterPartDefinition("ExpertPart", 
 
        b => b 
 
        .WithField("ExpertOf", fld => fld    
 
               .OfType("TaxononmyField") 
 
               .WithDisplayName("Expert Of") 
 
               .WithSetting("TaxonomyFieldSettings.Taxonomy", "ExpertOf") 
 
               .WithSetting("TaxonomyFieldSettings.LeavesOnly", "false") 
 
               .WithSetting("TaxonomyFieldSettings.SingleChoice", "true") 
 
               .WithSetting("TaxonomyFieldSettings.Required", "true")));

Wenn ich diesen Code ausführen die Taxonomie unter "Teile" zeigt und nicht "Felder" im Content-Definition. Ich kann das manuell zu Feldern hinzufügen und es funktioniert gut. Was ist der neue Migrationscode für Orchard 1.10, mit dem Sie ein Taxonomiefeld programmatisch zu einem benutzerdefinierten Inhaltstyp hinzufügen können?

Vielen Dank für Ihre Hilfe! Also ich habe es versucht.

Wenn ich diese Migration ausführen, dann gehen Sie in die Inhaltsdefinition des Teils. Der Experte von ist in der Inhaltsdefinition nicht unter "Felder" aufgeführt. Es ist unter "Teile" aufgeführt. Sie können nicht zu den Taxonomieeinstellungen gelangen. Dies ist, was

auch

Orchard Problems

geschieht, wird der Inhalt bearbeiten Bildschirm nicht die Taxonomie haben aufgelistet. Daher kann ich den Experten-Teil nicht an die Taxonomie anhängen.

+0

Sie haben einen Tippfehler in Ihrem Code: '.OfType („TaxononmyField“)' – Lawyerson

+0

Danke dafür! Es war von Problem die ganze Zeit. – Jeff

Antwort

0

Sie tun dies:

ContentDefinitionManager.AlterPartDefinition("ExpertPart", ... 

So sagen Sie: Fügen Sie das Feld zum ExpertPart. Wenn Sie im Bereich "Felder" eines Inhaltstyps manuell ein Feld im Dashboard hinzufügen, fügt Orchard es dem Teil mit demselben Namen des Inhaltstyps hinzu (der implizit mit einem Inhaltstyp erstellt wird). HINWEIS: Dieser Teil existiert nicht wirklich, aber Obstgarten erstellt es im laufenden Betrieb, wenn der Typ geladen wird.

Angenommen, Ihr benutzerdefinierter Inhaltstyp heißt "Experte", fügt Orchard das Feld im Dashboard dem Teil "Experte" hinzu.

Daher Ihr Feld unter Felder auftauchen zu lassen, anstatt unter einem Teil, sollten Sie Ihre Migrationen wie folgt aussehen:

// Orchard can only handle these migrations if you explicitly add the 
// Expert part to the Expert content type 
ContentDefinitionManager.AlterTypeDefinition("Expert", type => type 
    .WithPart("Expert")); 

// Add the field to the part 
ContentDefinitionManager.AlterPartDefinition("Expert", part => part 
    .WithField("ExpertOf", fld => fld 
     .OfType("TaxononmyField")); 
+0

Danke für Ihre Hilfe. Ich habe meinem ersten Beitrag einige zusätzliche Details hinzugefügt. – Jeff

Verwandte Themen