BLOG

FeedAPI ist tot, es lebe Feeds!

Manchmal ändern sich Dinge um Drupal sehr schnell, von denen man gedacht hat, dass sie lange Bestand haben werden. Ich hatte ja vor nicht all zu langer Zeit etwas zu FeedAPI geschrieben und fand das Modul auch recht gelungen. Aber kaum eine Woche später dreht der Verantwortliche des Drupal Moduls alles um und bringt ein neues Modul raus. Feeds ist also das neue FeedAPI.

In seinem Blog beschreibt der Autor seine Motive. Er hat FeedAPI über einige Jahre begleitet und wollte die ganze Sache auf eine sauberere und schnellere Code-Basis gerade in Hinblick auf Drupal 7 bringen unter der Verwendung von PHP5. Auch musste man früher 2 Module installieren um einen RSS oder Atom Feed in verschiedene CCK Felder zu bekommen. Mit Feeds ist dies alles in einem Modul und somit zugänglicher für unbedarfte Nutzer. Es mag etwas unverständlich sein, warum dafür nun ein neues Modul hermuss und nicht einfach FeedAPI 2.0 erschaffen wurde und nun im Drupal CVS einige Leichen mehr rumliegen, aber ändern kann man das nun so oder so nicht mehr.

Vom Aufbau des Moduls hat sich einiges geändert. Es wird nun auf ctools von Merlin of Chaos gesetzt, welches viele verschiedene Vorteile, wie den einfachen Export und Import von Einstellungen mit sich bringt. Auch werden intern nun Objekte verwendet, was bedeutet, dass man ein aus einem der Standard-Parser vererben kann und so leicht seine eigene Parser Implementation erstellen kann ohne jedes mal bei Null an zu fangen. Die Oberfläche ist auch mit ctools Hilfe erschaffen worden und macht einen aufgeräumten Eindruck.

Wohl viel gefragt und endlich dabei ist die Verarbeitung von lokalen Dateien. Man kann nun einen beliebigen Pfad angeben und mit dem Modul auch CSV Dateien importieren.

Das waren erst einmal die positiven Aspekte. Negativ fällt auf, dass eigentlich nichts fertig ist. Das Modul hat keine komplexere Feed Behandlung als das alte, viele der sogenannten Mapper fehlen und das ganze ist nach meinem Gefühl mehr Alpha als Beta. Taxonomie Import aus dem Feed fehlt noch komplett. Wer es trotzdem benutzen will, sollte das alles im Hinterkopf haben.

Feeds Benutzen

Ich trage hier eine kleine Anleitung zusammen, wie man Feeds benutzen kann. Bitte immer den Zustand des Moduls beachten und das ich nicht alle Varianten getestet habe.

Settings

admin/build/feeds/edit/test/settingsAuch ist es zur Zeit alles andere als intuitiv einen neuen Feed an zu legen. Macht erstellt unter “admin/build/feeds” eine neue Konfiguration. Diese ist an einen Node-Typ gebunden. Dies ist zwar genau wie in FeedAPI, aber es fühlt sich komplizierter an.

Man muss also erst einen Inhaltstypen anlegen und dann unter “Attach to content type” auswählen. Sonst steht das immer erst mal auf Page / Seite.

Fetcher

admin/build/feeds/edit/test/fetcher

Wenn man nun die Einstellungen wechselt und bei “Fetcher” auf “change” klickt, sieht man eines der noch vorhandenen Probleme. Man weiß nicht so recht wo man ist und was nun von den Optionen aktiv ist. Standardmäßig ist es der “HTTP Fetcher”, was aber nicht angezeigt wird. Man muss bei “File Upload” auf “select” klicken um die Einstellung zu verändern. Leider schlecht zu sehen, auf den ersten Blick. Komisch erscheint auch erst mal, dass man nichts einstellen kann. Hier muss man wissen, dass das Modul so arbeitet, dass erst, wenn ein Node erstellt wird, man eine URL angibt um Daten zu verarbeiten. Dies hier sind nur die Basiseinstellungen rund um den Node-Type.

Parser

feeds3

Hier kann man einfach den Parser auswählen. Es werden von Haus her XML, RSS 1, RSS 2 und Atom Feeds unterstützt. Die Einstellung hier hat keine direkten Auswirkungen was mit den Daten geschieht, sondern nur, dass sie überhaupt verarbeitet werden können.

Processor

feeds4Hier kann man sehr viele interessante Einstellungen vornehmen. Standard ist, dass zu jedem gefundenen Eintrag in der Datenquelle ein Node erstellt wird. Interessant ist auf alle Fälle der "Feed Node processor”, da dieser Feeds im Feed importieren kann. Ein OPML Feed ist ein Feed, der eine Aggregation von verschiedenen Inhalten darstellt und über diesen Processor kann man einen Node erstellen, der die verschiedenen Inhalte wie ein Feed-Node selbst zusammenhält. Man kann auch User und Taxonomien importieren, was aber ein Sicherheitsrisiko darstellen könnte und wohl eher für einen CSV Import gedacht ist.

Weitere Einstellungen

Zu einem Processor kann man weitere wichtige Einstellungen vornehmen. Zum Node-Processor muss man zum einen wählen, in welchen Node-Typ importiert wird und zum anderen, welche Inhalte in welche Felder fließen. Gerade beim sogenannten “Mapping” fehlen zur Zeit noch diverse Einstellungen, aber wenn das soweit durch ist, wird man in die meisten CCK Feld Typen importieren können und auch Bilder und Dateien aus dem Feed auf die Seite bringen.

Einen Feed anlegen

Hat man hier alle Einstellungen fertig, kann man über die normalen Drupal Wege einen Node anlegen. Entsprechend dem Fetcher gibt man dann zu dem neuen Node eine URL ein und kann dann die Inhalte sofort importieren. Feeds wie FeedAPI merkt sich an Hand eindeutiger Schlüssel, welche Inhalte zu welchem Node gehören und kann so aktualisieren oder sich merken, was gelöscht wurde.

Ich muss mit dem Modul einige tausend Nodes importieren und bin gespannt, wie die Leistung am Ende ist. Und ich werde wohl auch ein wenig Hand an das Modul legen müssen um die Entwicklung soweit voran zu treiben, dass ich damit auch wirklich das tun kann, was ich will. Aber alles in allem macht es einen guten Eindruck dieses FeedAPI 2.0 namens Feeds. Für Drupal war und ist das Modul eine Bereicherung.

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.