feeds

Mit dem Modul feeds lassen sich Inhalte aus anderen Seiten oder Tabellen importieren und in Drupal Seiten umwandeln.

Als Beispiel zeige ich hier den Import einer csv-Kalenderdatei, die auf einer anderen Seite als views-export zur Verfügung gestellt wird.

Als erstes wird eine geeignete csv-Exportdatei auf der KK-Homepage gebraucht. Diese habe ich auf der Seite: http://www.kirche-neustadt-wunstorf.de/Drupal8/exportdateien zusammen gestellt. Wenn die gewünschte Gemeinde/Einrichtung dort noch nicht steht, bitte bei Thomas Gleitz nachfragen.

Über Struktur - Feeds-Importes gelangt man auf die Startseite des Moduls. Dort die Vorlage node-Import clonen und mit einem sinnvollen Namen wie „Terminimport“ bezeichnen.

Wenn alles passt, erhält man oben stehendes Definitionsfenster, das nun Schritt für Schritt abgearbeitet werden muss.

In den Basic Settings tauchen Name und Beschreibung noch mal auf. Das Feld Attach to content type bleibt auf dem Default „Use standalone form“. Eine Anbindung an einen Dateityp an dieser Stelle, bewirkt, dass der Importbutton nur dort angezeigt wird. Eine Anbindung etwa an die Datumsseite führt zu Fehlern, weil ich den Import nicht starten kann, ohne die Seite auszuführen. Außerdem soll der Import ja automatisch im Hintergrund laufen. Dafür stelle ich den Periodic Import auf „Every 1 Stunde“. Das Feld „submit on submission“ bleibt aktiviert, damit ich zusätzlich zum automatischen Import auch von Hand starten kann. Dann Speichern.

Nun den Abrufer einstellen. Hier brauchen wir den „HTTP Fetcher - Download content from a URL.”  Aktivieren und Speichern.

Die Einstellungen beim http Fetcher können so bleiben wie sie sind.

Der Parser sollte als Voreinstellung auf CSV-Parser stehen. Die Einstellungen für den CSV-Parser müssen dahin geändert werden, dass das Trennzeichen ein Semikolon „ ; “ ist. Speichern.

Der Prozessor sollte auf Node Processor voreingestellt sein. Nun die Einstellungen zum Node Prozessor aufrufen.

Hier wird im Bundle der Import an den Inhaltstyp Datum geknüpft. Replace existing Beiträge muss aktiviert sein, damit die jeweils aktuellste Version von der KK-Homepage geladen wird. Die Daten sollen ja nur dort gepflegt werden. Der Haken bei Skip Hash Check sorgt dafür, dass die Daten auch überschrieben werden, wenn sich nichts geändert hat. Das ist wichtig, weil es sonst Übertragungslücken gibt. Das Textformat soll auf Full HTML stehen, damit z.B. auch Links im Text korrekt dargestellt werden. Im Feld Autor muss der Benutzername eines Redakteurs oder Administrators stehen, sonst wird der Import nicht ausgeführt. Dieser Redakteur hat später auch das Recht, die Daten zu bearbeiten. Unter Expire Nodes empfehle ich die Einstellung „after 1 Tag“. So werden die Daten nach 24 Stunden gelöscht. Alle noch aktiven Daten werden ja stündlich überschrieben und bleiben dadurch erhalten, abgelaufene Termine verschwinden komplett aus der Datenbank, was auf die Dauer die Suche sehr erleichtert. Die Einstellungen speichern.  

Der letzte Schritt ist das Mapping. Hier werden die einzelnen Spalten der Exportdatei den Felder des Datums zugeordnet. Als erstes kann das Published Date entfernt werden. Es wird nicht mit exportiert. Auch das title- und das body-Feld müssen entfernt werden. In der Exportdatei heißen sie anders. Die Reihenfolge der Felder spielt zum Glück keine Rolle, nur die Titel müssen passen. Dafür am besten die Exportdatei öffnen und aus der ersten Zeile die richtigen Bezeichnungen übernehmen. Die möglichen Ziele (targets) werden im Auswahlfenster angeboten und sind abhängig von den im Typ eingerichteten Feldern. Am Ende sollte das Mapping so aussehen wie in der folgenden Grafik:

Wenn alles gespeichert ist, kann es losgehen. (bzw. beginnt der automatische Import im Hintergrund.  Dieser wird durch das Modul Cron gesteuert. Cron sollte über Konfiguration - Cron so eingestellt sein, dass das Programm stündlich die anfallenden Arbeiten abarbeitet. Über die Seite ?q=import auf der eigenen Homepage erreicht man den Button zum Direktimport. Dort muss nun noch die Adresse der Importdatei eingegeben werden. Dann auf „Importieren“ klicken und der Import beginnt. Am Ende wird angezeigt wie viele Daten importiert wurden. Ein Kontrollblick auf den eingerichteten Kalender - dort sollten jetzt die importierten Termine stehen.

Drupal8: