Frage

Ich plane ein Geschäft Inventar auf einer Drupal-Website zu setzen und ich frage mich, ob es möglich ist, ein Skript zu erstellen (vielleicht in Python / PHP?), Um die Daten automatisch an Drupal mit CCK zu betreten? Vielen Dank im Voraus!

War es hilfreich?

Lösung

Es gibt ein paar von Drupal-Modulen an unterschiedliche Szenarien von externen (Masse) Importe gewidmet - überprüfen diese Übersicht für ein Option / Vergleiche.

Wenn Sie sehr spezielle Bedürfnisse haben, können Sie Ihr eigenes Modul, mit den vorhandenen und den Links / Hinweise von googletorps (+1) für die Führung zur Verfügung gestellt, wie die tatsächliche Einführung zu tun, während der Verallgemeinerungen zu ignorieren.

Andere Tipps

Die schnellste und einfachste Sache wäre, die Sachen mit einem wenig Drupal-Modul zu tun Sie für den Fall zu machen, anstatt dass viele Beiträge zum Server und verbringen Ressourcen auf Knoten Lasten und was nicht senden.

Wie auch immer, was Sie dazu brauchen, ist ganz ähnlich zu dem, was mac Antworten hier :

In diesem Fall brauchen Sie nicht alle speziellen file_field Sachen, aber Sie müssen noch die Werte für die verschiedenen CCK Felder einfügen Sie haben könnten und dem Knoten Körper und Titel. Nach dem Festlegen des Werts, die Sie direkt aus der Datenbank erhalten könnten, können Sie Ihren Knoten speichern.

Wenn Sie auf die db direkt anschließen, müssen Sie den gleichen Typ wie die, die Sie für Drupal verwenden haben, oder es außerhalb der Drupal api tun. Wenn Sie die Drupal API dafür verwenden zu tun, werfen Sie einen Blick auf db_set_active ()

Viele gute Vorschläge wurden von Henrik und Googletorp bereits geschehen ist.

Ein paar zusätzlichen Elemente zu berücksichtigen, Ihre Strategie zu entwerfen:

  1. Werden Sie ein vollwertiges E-Shop tun (vermutlich realisiert mit Ubercart ) oder setzen Sie einfach einen Blick auf Knoten nach oben, nur das Inventar zu Website-Besuchern zu präsentieren?
  2. Wie viele Produkte werden Sie importieren?
  3. Wie oft gehst du sie wieder zu importieren?

Lösungen, die ich fühlen würde sicher auszuschließen:

  • POST:. , wie durch googletorp kommentiert, wäre es zu kompliziert sein
  • Externe Skript: Sie können nicht wirklich vermeiden (es sei denn, Sie gefährlich leben wollen und / oder Zeit zu verschwenden) Drupal API verwenden, ob sie der Kern oder die, von Ubercart sind. Die Daten werden über mehrere Tabellen verstreut, und es gibt viele Haken, die ausgelöst werden, wenn ein Knoten eingefügt wird. Die einzige Ausnahme ist, wenn Sie ein PHP-Skript tun würden, den die Boot ersten (siehe die Struktur von index.php oder xmlrpc.php , um zu sehen, wie es funktioniert) ausführen, aber in diesem Fall würde ich eher für ein Modul gehen zusammen. viel eleganter, tragbare, wartbar

Lösungen, die ich unterstützen würde:

  • Machen Sie Ihre eigene Modul! Wie googletorp wies darauf hin, gab ich einige Beispiel-Code auf, wie CCK Felder in diese Antwort .
  • Ja, das ist ... ist die einzige, die ich glaube! ;)

Allerdings, was ich gelernt habe, ist ebenso wichtig, ist auf eine geeignete Quelle von Daten für den Import auswählen . Hier ist meine Meinung:

  • Lesen Sie direkt von DB: Gut nur, wenn Sie Sachen einmal importieren und für alle und , wenn die DB-Schema der ausführenden Anwendung ist einfach genug, um sinnvolle Abfragen erstellen . Software-Änderungen und sich entwickelt, und DB-Schemata folgen. Wenn Sie sich in der Notwendigkeit einer erneuten Import in zwei Monaten und das Schema Ihrer anderen Anwendung hat sich geändert zu finden, müssen Sie Ihren Code ändern, ändern Tests, etc, etc ...
  • Verwenden von XML-Dateien: Wenn die ursprüngliche Anwendung kann in diesem Format exportieren, mit PHP‘ SimpleXML und Xpath + PHP typecasting es ist wirklich ein Brise die Daten, die Sie in dem Format, das Sie in wenigen Minuten wollen wollen bekommen. Der einzige Nachteil dieser Methode ist, dass beruht auf ... Dateien. Also, wenn Sie regelmäßig unbemannte und automatische Importe haben müssen, es ist ein bisschen wie ein Schmerz, alle Probleme voraussehen, die (falsche Berechtigungen auf Dateisysteme, beschädigte Dateien, falsche Codierung ...) passieren kann und anstelle Gegenmaßnahmen setzen . Umgekehrt, ich mag diese Methode viel für, wenn ich weiß, dass jemand den Importvorgang die ganze Zeit zu überwachen und bei Problemen eingreifen können.
  • Webservice: Das ist der, den ich am meisten mag, wenn ich in einem automatischen und periodischen Weise zu importieren. Der größte Vorteil ist, dass die beiden Anwendungen „sprechen“ miteinander, und einige ihrer Geschäftslogik aussetzen, so dass Sie tatsächlich eine Sitzung haben kann, die wie folgt aussieht: „Hey, ich brauche alle Produkte, die Preise seit der letzten Woche geändert haben "-‚hier Sie sind, sollten sie 127 sein, in drei Kategorien, sehen Sie, dass kopieren‘? - „Oh ja ... alle von ihnen erhielt laut und deutlich: 127 Artikel und 3 Kategorien!“. Diese vereinfachen viel Trapping Fehler und Ausnahmen. Während Drupal die Box als Webservice Verbraucher und Anbieter arbeitet, werden Sie webservice implementieren auch auf der anderen Anwendung, und dies könnte oder nicht schwierig sein. Es ist völlig von der ausführenden Anwendung abhängt

HTH!

CCK oder nicht, es ist nur eine wohlgeformte POST Abfrage (vermutlich), so sicher, denn es geht.

Wenn die Quelldaten in MySQL ist, würde ich auf der Suche werden Migrate Modul zu erstellen Inhalt. Hier ist ein Auszug aus seiner Projektseite:

  

... bietet einen flexiblen Rahmen Inhalt in Drupal aus anderen Quellen für Migration (zum Beispiel, wenn eine Webseite von einem anderen CMS Drupal Umwandlung). Out-of-the-box-Unterstützung für die Erstellung von Kern Drupal Objekten wie Knoten, Benutzer, Dateien, Begriffe und Kommentare enthalten ist - es leicht für die Migration von anderen Arten von Inhalten erweitert werden kann. Inhalt importiert und zurückgerollt eine gebündelte Web-Oberfläche (Migrate UI-Modul) oder enthalten Drush-Befehle (dringend empfohlen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top