2012-12-08 6 views
5

Ich habe benutzerdefinierten Code, der eine Reihe von XML-Dokumenten liest und erstellt ein benutzerdefiniertes Datenimport Rezept, die ich mit dem Import/Export-Modul in Orchard hochladen. Die importierten Dokumente haben den Inhaltstyp "API-Dokumentation", den ich mit der Verwaltungsoberfläche von Orchard erstellt habe. Nun würde Ich mag diese Rezeptdatei Generation Code Teil einer benutzerdefinierten Orchard Modul machen (wenn das der richtige Ansatz ist, ich bin nicht sicher) und lassen Sie den Admin-Benutzer wie folgt vor:Orchard CMS Custom Data Importer

  1. Verwenden Sie ein Formular im Admin-Dashboard-Abschnitt werden die xML-Dokumente hochzuladen, die durch die Rezeptdatei Generator ausgeführt werden müssen

  2. Diese Form der Rezeptdatei mit dem Import/Export-Modul trägt, so dass sie ihre Importvorgang wie gewohnt

    ausführen können

Was wäre das Beste? Ansatz, um damit umzugehen? Ich bin mir nicht einmal sicher, ob die Erstellung eines benutzerdefinierten Moduls der richtige Ansatz ist. Wenn es andere Erweiterbarkeitsoptionen gibt, die ich nutzen sollte, wäre das großartig zu wissen.

Antwort

3

Die IImportExportService Schnittstelle hat ein Mitglied Import genannt:

void Import(string recipeText); 

Sobald Sie Ihr Rezept erzeugt haben, können Sie diese Methode aufrufen, und es wird das Rezept und aktualisieren Sie die Shell ausführen.

Wenn Sie nur Daten importieren, dann können Sie, ohne mich zu irren, ohne Aktualisierung der Shell davonkommen (was Sie nur tun müssen, wenn Funktionen aktiviert oder deaktiviert wurden). In diesem Fall können Sie ein paar erstellen Aufrufe an die IRecipeParser und IRecipeManager Schnittstellen statt:

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

ich etwas ähnliches geschrieben haben, die einige Import tut/exportieren, so dass Sie Stücke von Inhalten zwischen Standorten bewegen kann; Es macht auch eine Verschlüsselung, so dass die Details vor neugierigen Blicken verborgen sind. Ein großartiger Ort, um zu beginnen, wenn Sie die Quelle für die ImportExportService lesen, wie es nicht so kompliziert ist.

+0

Danke für den Tipp. Das ist eine sehr nützliche Information. Haben Sie eine Meinung, ob der rezeptgenerierende Code zu einem Modul oder etwas anderem gemacht werden sollte? Ich gehe davon aus, dass ich ein Rezeptgenerator-Modul erstellen und ein Admin-Formular für dieses Modul erstellen würde, damit ich die XML-Dateien über das Formular hochladen kann. Ist das der richtige Ansatz? Ich bin neu darin würde einige konzeptionelle Führung schätzen. – user1888320

+0

Ja, das klingt völlig in Ordnung. Wenn Sie Orchard neu sind, sehen Sie http://patrickyong.net/2010/07/25/hello-orchard-part-2/ für einen Beispielcode zum Einrichten eines Admin-Controllers (es ist ein bisschen alt, also überprüfen Sie die Kommentare) . Die Handhabung des Datei-Uploads ist die gleiche wie bei jedem anderen ASP MVC-Projekt und es gibt ein tolles Tutorial über http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx. – mdm

+0

Ich werde versuchen, umzusetzen, was Sie vorgeschlagen haben und berichten, was ich herausgefunden habe. Ich danke dir sehr! – user1888320