以编程方式在Orchard CMS中创建内容类型

jos*_*shb 4 c# orchardcms

我正在创建一个Orchard模块,作为迁移的一部分,我需要创建一个新的内容类型.我能够将一个IContentManager实例注入我的迁移类,这允许我创建新的内容项,但我无法弄清楚如何创建新的内容类型.

有人可以描述这是如何完成的(代码示例会很棒)?

Ber*_*Roy 8

您不需要注入内容管理器.整个代码中有很多很多例子.实际上,您可以在任何模块中进行任何迁移,并找到类似这样的内容:

ContentDefinitionManager.AlterTypeDefinition("BlogPost",
    cfg => cfg
           .WithPart("BlogPostPart")
           .WithPart("CommonPart", p => p
           .WithSetting("DateEditorSettings.ShowDateEditor", "true"))
           .WithPart("PublishLaterPart")
           .WithPart("RoutePart")
           .WithPart("BodyPart")
);
Run Code Online (Sandbox Code Playgroud)

  • 当你将`ContentPart`添加到`ContentType`,并且两者都具有相同的名称时,那么`ContentPart`不会出现在Orchard的*Content Definition*UI中.此外,您以编程方式添加到"ContentPart"的任何"ContentFields"在用户界面中显示为属于"ContentType".以页面类型为例.在"内容定义"UI中,您可以将"字段"添加到"页面类型",它们似乎属于"页面类型",但它们不属于"页面类型".它们属于Page Part,即使用户界面中没有Page Part.那部分存在于幕后. (2认同)