1

我有一个为查询表单开发的自定义内容项,具有以下迁移

             ContentDefinitionManager.AlterTypeDefinition("Bt Enquiry Page", cfg => cfg
            .WithPart("TitlePart")
            .WithPart("AutoroutePart")
             .WithPart("AutoroutePart", builder => builder
              .WithSetting("AutorouteSettings.AllowCustomPattern", "true")
              .WithSetting("AutorouteSettings.AutomaticAdjustmentOnEdit", "false")
              .WithSetting("AutorouteSettings.PatternDefinitions", "[{Name:'Title', Pattern: '{Content.Slug}', Description: 'my-page'}]")
              .WithSetting("AutorouteSettings.DefaultPatternIndex", "0"))
            .WithPart("MenuPart")
            .WithPart("TagPart")
            .WithPart("BodyPart")
            .WithPart("CommonPart")
            .WithPart("EnquirySettingPart")
            .Creatable()
            .Indexed()
            );

出于某种原因,当我禁用模块功能时,自定义内容项“Bt 查询页面”不会从管理菜单中消失,这意味着即使该功能被禁用,我也可以创建内容项的实例。这是默认行为吗?我错过了什么吗,任何人都可以点亮一些灯。

-乔治

4

1 回答 1

0

这是默认行为。

当您禁用模块时,Orchard 不会回滚通过迁移所做的任何更改。迁移可能会变得相当复杂,并且会做一些不容易自动回滚(甚至不应该)的事情。

但是您可以通过以下方式自己进行清理:

  • 从仪表板中删除过时的内容类型(Content -> Content Types在 <= 1.6 或Content Definition>=1.7 中)
  • 连接IFeatureEventHandler并使用Enabled/Disabled事件来执行清理任务
于 2013-09-16T15:38:48.177 回答