如何以编程方式禁用Orchard模块?

时间:2012-10-24 19:58:06

标签: orchardcms

从Migrations.cs,我想要禁用一个模块(如果已启用),如果尚未启用,则启用另一个模块。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:8)

好的,我通过查看Orchard.Modules中的Controller和Command类来解决这个问题。首先,我必须向Orchard.Modules添加项目引用,然后在Migrations.cs中添加:

    public int UpdateFrom2() {
        var features = _moduleService.GetAvailableFeatures().ToDictionary(m=>m.Descriptor.Id, m=>m);
        if (features.ContainsKey("TinyMce") && features["TinyMce"].IsEnabled) {
            _moduleService.DisableFeatures(new string[] { "TinyMce" });
        }

        if (features.ContainsKey("TinyMceDeluxe") && !features["TinyMceDeluxe"].IsEnabled) {
            _moduleService.EnableFeatures(new string[] { "TinyMceDeluxe" });
        }

        return 3; 
    }

答案 1 :(得分:1)

我认为您应该查看Orchard工具:您可以启用和禁用功能并获取已启用功能的列表。查看Orchard.Modules项目中的FeatureCommands.cs。希望这会对你有所帮助。