2012-12-08 136 views
5

我有定製代碼讀取一堆xml文檔,並創建一個自定義數據導入配方,我使用烏節中的導入/導出模塊上傳。導入的文檔是使用Orchard管理界面創建的內容類型「Api文檔」。現在,我想提出一個自定義的果園模塊的這個配方文件生成代碼的一部分(如果這是正確的做法,我不知道),並讓管理員用戶執行以下操作:Orchard CMS自定義數據導入器

  1. 使用的一種形式在管理控制檯部分上傳需要通過配方文件生成器運行的XML文檔

  2. 這表單提交配方文件的導入/導出模塊,以便它可以執行其導入過程照常

什麼是最好的處理這個問題的方法?我甚至不確定創建自定義模塊是否正確。如果還有其他可擴展性選項我應該利用,那將是很好的瞭解。

回答

3

IImportExportService接口有一個名爲Import成員:

void Import(string recipeText); 

一旦你生成你的食譜,你可以調用這個方法,它會執行配方和更新的外殼。

如果您只是導入數據,那麼如果我沒有弄錯,您可以在不更新shell的情況下離開(如果啓用或禁用了功能,您只需要這樣做) - 在這種情況下,您可以製作幾個調用到IRecipeParserIRecipeManager接口來代替:

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

我已經寫了類似的東西,做一些進口/出口,所以你可以移動的網站之間的內容塊;它也做了一些加密,以便隱藏細節以防窺視。開始的好地方是閱讀ImportExportService的源代碼,因爲它並不複雜。

+0

感謝您的提示。這是一個非常有用的信息。你有看法食譜生成代碼是否應該成爲一個模塊或其他東西?我假設我會創建一個配方生成器模塊併爲該模塊創建一個管理員表單,以便我可以使用該表單上載xml文件。這是正確的方法嗎?我對此很感興趣,希望能提供一些概念指導。 – user1888320

+0

是的,這聽起來完全合理。如果您是Orchard的新手,請參閱http://patrickyong.net/2010/07/25/hello-orchard-part-2/,以獲取設置管理控制器的一些示例代碼(這有點舊了,因此請檢查註釋) 。處理文件上傳與任何其他ASP MVC項目相同,有一個很好的教程在http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx。 – mdm

+0

我會盡力實現你的建議並報告我發現的內容。非常感謝! – user1888320