Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orchardcms 如何以编程方式禁用Orchard模块?_Orchardcms - Fatal编程技术网

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

Orchardcms 如何以编程方式禁用Orchard模块?,orchardcms,Orchardcms,在Migrations.cs中,我想禁用一个模块(如果已启用),并启用另一个模块(如果尚未启用)。我该怎么做 我认为您应该看看Orchard工具:您可以启用和禁用功能,并获得已启用功能的列表。查看Orchard.Modules项目中的FeatureCommands.cs。希望这对您有所帮助。好的,我通过查看Orchard.Modules中的控制器和命令类了解到了这一点。首先,我必须向Orchard.Modules添加一个项目引用,然后在Migrations.cs中: public int

在Migrations.cs中,我想禁用一个模块(如果已启用),并启用另一个模块(如果尚未启用)。我该怎么做

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

好的,我通过查看Orchard.Modules中的控制器和命令类了解到了这一点。首先,我必须向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; 
    }

谢谢,这正是我最后要做的。只是想知道你是如何解决迁移中的_moduleService?在Orchard 1.9中似乎不起作用。当我尝试启用Orchard.Taxonomies时,它会在DB中进入状态
Rising
,从这时起,该功能将不再启用,也无法在Admin中启用。我需要重新启动Web服务器,以使模块进入状态
Up
。奇怪。