Orchard CMS自定义数据导入程序

时间:2012-12-08 20:00:29

标签: orchardcms orchardcms-1.6

我有自定义代码,它读取一堆xml文档并创建一个自定义数据导入配方,我使用Orchard中的Import / Export模块上传。导入的文档是我使用Orchard管理UI创建的内容类型“Api文档”。现在,我想使这个配方文件生成代码成为自定义Orchard模块的一部分(如果这是正确的方法,我不确定)并让管理员用户执行以下操作:

  1. 使用管理仪表板部分中的表单上传需要通过配方文件生成器运行的xml文档

  2. 该表单将配方文件提交到导入/导出模块,以便它可以照常执行其导入过程

  3. 处理此问题的最佳方法是什么?我甚至不确定创建自定义模块是正确的方法。如果有其他可扩展性选项我应该利用,那将是很好的知道。

1 个答案:

答案 0 :(得分:3)

IImportExportService界面有一个名为Import的成员:

void Import(string recipeText);

生成配方后,您可以调用此方法,它将执行配方并更新shell。

如果您只是导入数据,那么如果我没有弄错,您可以在不更新shell的情况下离开(只有在启用或禁用功能时才需要这样做) - 在这种情况下,您可以拨打几个电话改为IRecipeParserIRecipeManager接口:

var recipe = _recipeParser.ParseRecipe(recipeText);
_recipeManager.Execute(recipe);

我写了类似的东西进行一些导入/导出,这样你就可以在站点之间移动内容;它还进行了一些加密,因此细节隐藏在窥探之中。如果要阅读ImportExportService的来源,这是一个很好的起点,因为它并不是那么复杂。