Was ist die beste Lösung zum Importieren von CSV-Dateien in Knoten oder Entitäten in Drupal 8, die eine Benutzeroberfläche bietet, damit Inhaltseditoren regelmäßig importieren können?
Ich habe gehört, dass D8 Migrate gut funktioniert, aber ich verstehe, dass es derzeit keine Benutzeroberfläche für den Importvorgang gibt.
Der CSV-Import über Feeds scheint noch nicht fertig zu sein.
8
migration
feeds
importing-exporting
Scott Anderson
quelle
quelle
Antworten:
Ich mache dies die ganze Zeit unter Verwendung von Migrationskonfigurationsentitäten (bereitgestellt vom Modul migrate_plus ). Definieren Sie ein Migrations-Plugin im Konfigurations- / Installationsverzeichnis Ihres Migrationsmoduls mithilfe des CSV-Quell-Plugins aus dem Modul migrate_source_csv. Lassen Sie dabei die Quellkonfiguration 'path' weg , die im Formular ausgefüllt wird. Angenommen, die ID dieser Migration lautet example_csv. Erstellen Sie ein Formular mit einem Datei-Upload-Element (in diesem Fall 'csv_file' genannt) und in der Methode submitForm ():
Dadurch werden die Migrationseinstellungen mit der neuen Datei aktualisiert. Sie müssen die Migration noch ausführen
drush mi example_csv
, um den Inhalt tatsächlich zu importieren.Oder fügen Sie der Funktion Code hinzu, um den Import tatsächlich auszuführen:
quelle
Es ist wahrscheinlich besser und schneller, Feeds zu verwenden , aber da sich die D8-Version noch in der Entwicklung befindet; Alternativ können Sie Excel + VBA ( Visual Basic für Applikationen , wird mit Excel geliefert) + Internet Explorer 11 verwenden.
Hier ein Beispiel, wie Sie Ihren CSV-Inhalt mit VBA importieren können.
Angenommen, Sie möchten dies importieren und neue Knoten mit den Informationen aus Ihrer CSV erstellen:
Hier ist ein Beispiel für einen VBA-Code:
Stellen Sie sicher, dass Sie den Domainnamen
myURL = "https://rgr79.ply.st/node/add/article"
entsprechend Ihrer Domain ändern . Ich verwende eine simplytest.me- Domain, wenn Sie nicht bereits sagen können.Wie füge ich den VBA-Code hinzu?
Klicken Sie auf die Registerkarte Entwickler und dann auf das Visual Basic-Symbol (oder ALT + F11).
und fügen Sie den Code in Sheet1 ein (Sheet1)
Klicken Sie nun in der Symbolleiste auf
tool
und dannReferences
Sie müssen scrollen, suchen und markieren
Hinweis: Ich weiß, dass es mit Internet Explorer 11 funktioniert, nicht sicher, ob es mit dem neuen Microsoft Edge-Browser funktioniert.
Jetzt können Sie das Skript ausführen. Sie können dies tun, indem Sie auf die Schaltfläche Wiedergabe klicken
Sie können es auch ausführen, indem Sie auf das Makrosymbol klicken (siehe Abbildung 2). Ich bevorzuge es jedoch über das VBA-Fenster.
Sie drücken also die Wiedergabetaste und ein IE-Fenster wird automatisch geöffnet und Sie sehen Folgendes:
Oh ja, du hast vergessen dich einzuloggen, lol.
Sie melden sich also bei Drupal an und schließen dann den Explorer (da der Cookie-Verlauf Ihr Login speichert) und planen, erneut auf die Wiedergabetaste zu klicken. Aber Sie sind nicht in der Lage ... Sie sehen die Wiedergabetaste ausgegraut und können keine Änderungen am VBA-Code vornehmen ... Was ist los?
Nun, Ihr Code läuft noch, also müssen Sie die Stopp-Taste (Zurücksetzen) drücken.
Jetzt können Sie erneut auf die Wiedergabetaste klicken und die Welt der Automatisierung genießen.
Wichtig
Wenn Sie vorhaben, Inhalte in das Body-Feld einzufügen (wie in diesem Beispiel), können wir keine div-Klasse oder ID als Ziel festlegen, da Drupal 8 CKEditor für dieses Feld verwendet und CKEditor JS ist. Daher können wir keine Inhalte in CKEditor hinzufügen.
Zum Glück gibt es eine Lösung. Stellen Sie sicher, dass Ihre IE 11-Sicherheitseinstellungen auf Hoch eingestellt sind. Dadurch werden automatisch alle JS blockiert. Daher wird CKeditor nicht geladen und das Body-Feld ist genau wie die anderen Felder.
Wenn Sie Knoten bearbeiten müssen Beispiel:
quelle
Das obige funktioniert gut für mich, aber
Migratin::Load()
undsave()
Methode ist in Drupal 8 3.x nicht verfügbar. Ich habe einige Änderungen an dem von @Mike Ryan vorgeschlagenen Code vorgenommen. Hier ist der Arbeitscode für den Formular-Sumbit-Handler.quelle
Jetzt können Sie das Modul zum Importieren von Inhalten verwenden ( https://www.drupal.org/project/contentimport ). Hier ist ein Beitrag zur Verwendung: https://www.ostraining.com/blog/drupal/content-import-module/
quelle