2012-12-08 22 views
5

Mam niestandardowy kod, który odczytuje kilka dokumentów xml i tworzy niestandardowy przepis importu danych, który przesyłam za pomocą modułu Import/Export w Orchard. Zaimportowane dokumenty są typu zawartości "Dokumentacja Api", które utworzyłem przy użyciu interfejsu użytkownika administratora Orchard. Teraz chciałbym, aby ten plik recepta część kodu generacja modułu zwyczaj Orchard (jeśli jest to właściwe podejście, nie jestem pewien) i pozwolić użytkownikowi administratora wykonaj następujące czynności:Orchard CMS Custom Data Importer

  1. skorzystać z formularza w sekcji administrator Dashboard, aby przesłać dokumenty xML, które muszą być prowadzone przez generator plików przepis

  2. to forma przekazuje plik receptury do modułu import/Export, tak aby mógł on wykonywać swoje proces importowania jak zwykle

Jaki byłby najlepszy podejście do obsługi tego? Nie jestem nawet pewien, czy właściwe jest tworzenie niestandardowego modułu. Jeśli są inne opcje rozszerzenia, z których powinienem skorzystać, byłoby wspaniale wiedzieć.

Odpowiedz

3

Interfejs IImportExportService ma człon zwany Import:

void Import(string recipeText); 

Po wygenerowaniu swój przepis można wywołać tej metody i będzie wykonywał recepturę i aktualizacji powłokę.

Jeśli tylko importujesz dane, jeśli się nie mylę, możesz uciec bez aktualizacji powłoki (co musisz zrobić tylko, jeśli funkcje zostały włączone lub wyłączone) - w takim przypadku możesz zrobić kilka wzywa do interfejsów IRecipeParser i IRecipeManager zamiast:

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

pisałem coś podobnego, który robi trochę importowanie/eksportowanie więc można przenieść fragmenty zawartości między lokacjami; robi także pewne szyfrowanie, więc szczegóły są ukryte przed wścibskimi oczami. Doskonałym miejscem do rozpoczęcia, jeśli jest czytanie źródła dla ImportExportService, ponieważ nie jest to wszystko, co skomplikowane.

+0

Dzięki za cynk. To bardzo przydatna informacja. Czy masz opinię, czy kod generujący przepis powinien zostać przekształcony w moduł czy coś innego? Zakładam, że utworzę moduł generujący receptury i utworzę formularz administratora dla tego modułu, dzięki czemu będę mógł przesłać pliki XML za pomocą formularza. Czy to właściwe podejście? Jestem nowy w tym, doceniłbym pewne konceptualne wskazówki. – user1888320

+0

To brzmi zupełnie rozsądnie. Jeśli jesteś nowy w Orchard zobacz http://patrickyong.net/2010/07/25/hello-orchard-part-2/ dla przykładowego kodu do konfiguracji kontrolera administratora (jest nieco stary, więc sprawdź komentarze) . Obsługa przesyłania plików jest taka sama, jak w przypadku każdego innego projektu ASP MVC, a na stronie http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx można znaleźć świetny samouczek. – mdm

+0

Spróbuję wdrożyć to, co zasugerowałeś i zgłosić to, co odkryję. Dziękuję bardzo! – user1888320

Powiązane problemy