use*_*320 5 orchardcms orchardcms-1.6
我有自定义代码,它读取一堆xml文档并创建一个自定义数据导入配方,我使用Orchard中的Import/Export模块上传.导入的文档是我使用Orchard管理UI创建的内容类型"Api文档".现在,我想使这个配方文件生成代码成为自定义Orchard模块的一部分(如果这是正确的方法,我不确定)并让管理员用户执行以下操作:
使用管理仪表板部分中的表单上载需要通过配方文件生成器运行的xml文档
该表单将配方文件提交到"导入/导出"模块,以便它可以照常执行其导入过程
处理这个问题的最佳方法是什么?我甚至不确定创建自定义模块是正确的方法.如果有其他可扩展性选项我应该利用,那将是很好的知道.
该IImportExportService接口有一个名为的成员Import:
void Import(string recipeText);
Run Code Online (Sandbox Code Playgroud)
生成配方后,您可以调用此方法,它将执行配方并更新 shell。
如果您只是导入数据,那么如果我没记错的话,您可以在不更新 shell 的情况下逃脱(只有在启用或禁用功能的情况下才需要执行此操作) - 在这种情况下,您可以对 和 进行几次IRecipeParser调用IRecipeManager接口代替:
var recipe = _recipeParser.ParseRecipe(recipeText);
_recipeManager.Execute(recipe);
Run Code Online (Sandbox Code Playgroud)
我写过类似的东西,它可以进行一些导入/导出,以便您可以在站点之间移动内容片段;它还进行了一些加密,这样细节就不会被窥探。阅读ImportExportService的源代码是一个很好的起点,因为它并不那么复杂。