2016-05-03 13 views
0

orchard CMSのカスタムタイプにタクソノミーを追加しようとしています。 オーチャードCMS 1.10カスタムパート内の移行で分類を追加する

私は分類が「部」およびないコンテンツ定義の中で、「フィールド」の下に表示このコードを実行する

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")));

。私は手動でこれをフィールドに追加することができ、正常に動作します。 Orchard 1.10の新しい移行コードは、カスタムコンテンツタイプにプログラムで分類フィールドを追加できるものですか?

ありがとうございました!だから私はこれを試しました。

ContentDefinitionManager.AlterTypeDefinition("Expert", 
           b => b.WithPart("ExpertPart")); 

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

この移行を実行すると、そのパーツのコンテンツ定義に移動します。のエキスパートは、コンテンツ定義の「フィールド」の下には表示されません。 「パーツ」の下にリストされています。タクソノミー設定にはアクセスできません。これは

Orchard Problems

はまた、コンテンツ編集画面は、分類がリストされていない何が起こるかです。だから私は専門家の部分をタクソノミーに付けることはできません。

+0

あなたはあなたのコードのタイプミスがあります: '' .OfType(「TaxononmyFieldを」) – Lawyerson

+0

ありがとう!それは全面的に問題だった。 – Jeff

答えて

0

あなたはこれを行う:だからあなたが言う

ContentDefinitionManager.AlterPartDefinition("ExpertPart", ... 

を:ExpertPartにフィールドを追加します。ダッシュボード内のフィールドをコンテンツタイプの「フィールド」セクションに手動で追加すると、Orchardはコンテンツタイプと同じ名前(コンテンツタイプを使用して暗黙的に作成されたもの)のパーツに追加します。 注::この部分は実際には存在しませんが、タイプがロードされると、オーチャードはそれをオンザフライで作成します。

したがって、カスタムコンテンツタイプを「エキスパート」とすると、オーチャードはダッシュボードのフィールドを「エキスパート」という部分に追加します。

したがって、あなたのフィールドは、フィールドの下にはなく、一部の下に表示させるために、あなたの移行は次のようになります。

// 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

ご協力ありがとうございます。私は最初の投稿にいくつかの詳細を追加しました。 – Jeff

関連する問題