cag_tables: Daten aus Excel-Dokumenten oder Datenbank-Tabellen einfach auf einer TYPO3-Website publizieren

 cag_tables: Konfigurationsmöglichkeiten für das Frontend-Plugin "Display CSV Table"

Schon mehrmals habe ich in diesem Blog über TYPO3-Extensions berichtet, welche die Publikation von tabellarischen Daten auf einer Website erleichtern. Mein bisheriger Favorit war cag_longlists, die flexibler als csvdisplay bzw. bit_csvtable ist, Daten nicht nur aus einer CSV-Datei, sondern auch aus der TYPO3-Datenbank beziehen kann und alle erforderlichen Such-, Filter- und Paging-Funktionen bietet. Allerdings ist cag_longlist im Detail etwas trickreich, was mich damals dazu bewogen hatte, das Handbuch zu überarbeiten und so den Umgang mit der Extension etwas zu vereinfachen.

Inzwischen hat sich der Entwickler Jens Eipel meine Kritikpunkte zu Herzen genommen und mit cag_tables eine neue Extension entwickelt, welche cag_longlists ablöst. Der Zweck ist grundsätzlich derselbe, aber die Handhabung ist wesentlich einfacher und sicherer geworden. Neu ist die Trennung in zwei separate Frontend-Plugins für Daten aus einer CSV-Datei bzw. aus einer Datenbank-Tabelle – das sorgt für die Konzentration auf das Wesentliche und verhindert, dass ungeübte Backend-Benutzer, die eigentlich nur eine CSV-Datei importieren sollen, plötzlich vertrauliche Daten aus der Datenbank publizieren. Trotz dieser Trennung und der unterschiedlichen Datenquellen ist das Bedienungskonzept aber bei beiden Plugins sehr ähnlich: Nebst ein paar Optionen bezüglich Such- und Filterfunktionen gibt man das HTML-Template für das Rendering sowie die Datenquelle (CSV-Datei bzw. Datenbank-Tabelle) an. Sobald man diese Angaben erstmalig gespeichert hat, kann man die anzuzeigenden Tabellenspalten per Multiselect bequem auswählen – anschliessend generiert cag_tables auf Knopfdruck den erforderlichen Code.

Um es kurz zu machen: cag_tables ist eine mustergültige Lösung. Der einzige Stolperstein besteht in der aktuellen Version 1.0.7 noch darin, dass Dateipfade zu HTML-Templates und CSV-Dateien manuell angepasst werden müssen, falls TYPO3 nicht im Webroot installiert ist, sondern in einem Unterverzeichnis.

CSV-Dateien auf TYPO3-Websites publizieren mit cag_longlists

cag_longlists

Schon einmal habe ich in diesem Blog über TYPO3-Extensions berichtet, mit denen man importierte CSV-Dateien in Tabellenform auf einer TYPO3-Website ausgeben kann (vgl. CSV-Dateien auf TYPO3-Websites publizieren mit csvdisplay und bit_csvtable). Damals hatte ich bereits auf cag_longlists hingewiesen, aufgrund der unvollständigen Dokumentation jedoch auf einen Test verzichtet. Inzwischen habe ich – mit Unterstützung des Entwicklers Jens Eipel, für die ich mich an dieser Stelle herzlich bedanke – selbst ein entsprechendes Manual verfasst, das mit der neusten Version 1.2.2 der Extension seit heute im TER verfügbar ist.

cag_longlists hebt sich schon dadurch von den beiden anderen Extensions ab, dass die Daten nicht nur aus einer CSV-Datei importiert, sondern auch aus der TYPO3-Datenbank ausgelesen werden können, was die Einsatzmöglichkeiten deutlich erweitert. Um diese Option nutzen zu können muss man allerdings SQL beherrschen, denn es gibt keinen Assistenten, um die Datenbankanfrage zu erstellen. Ein weiterer Unterschied besteht darin, dass die Daten über sogenannte Autofilter (also Dropdowns im Spaltenkopf) gefiltert werden können; je nach Datenmaterial ist dies bequemer als eine Volltextsuche, die ebenfalls vorhanden ist. Für grössere Datenmengen hilfreich ist die Sortierfunktion pro Spalte sowie der Paging-Mechanismus, der längere Tabellen auf mehrere Screens verteilt.

Weil Leistungsfähigkeit selten ohne eine gewisse Komplexität zu haben ist, ist cag_longlists dafür etwas aufwändiger in der Konfiguration als andere Extensions. Zentral ist dabei, dass die Spaltennamen in der CSV-Datei, im HTML-Template und im Plugin-Flexform übereinstimmen müssen, damit das gewünscht Resultat erzielt wird, wobei je nach dem Gross- oder Kleinschreibung gefordert ist. Auch einzelne Parameter des Plugin-Flexforms sind vielleicht nicht auf Anhieb verständlich. Dank des neuen Handbuchs sollte nun allerdings der Einstieg jedem TYPO3-Administrator gelingen, und hat man das Prinzip einmal verstanden, dann kommt man sehr rasch zum Ziel.

CSV-Dateien auf TYPO3-Websites publizieren mit csvdisplay und bit_csvtable

Letztes Update: 2. November 2009

image

Um einen Datenbestand, der als Excel-Tabelle vorliegt, auf einer TYPO3-Website zu publizieren gibt es mehrere Möglichkeiten:

  • Download-Datei: Der einfachste Weg besteht darin, die Datei unverändert auf den TYPO3-Server zu laden und lediglich zu verlinken. Wer die Daten einsehen will, muss die Datei also herunterladen und in Excel öffnen. Sofern die Zielgruppe die Daten weiterverarbeiten möchte, ist diese Lösung durchaus sinnvoll – andernfalls ist sie hingegen wenig elegant und auch im Hinblick auf die Suchmaschinenoptimierung nicht ideal.
  • Individuelle Extension: Wer den Aufwand nicht scheut, kann eine eigene Extension entwickeln (lassen), welche die Daten aus der Excel-Tabelle importiert und dann in der gewünschten Form publiziert. Eine solche Extension könnte auch Formulare bereitstellen, um die Daten im Frontend und/oder im Backend direkt auf dem TYPO3-Server zu pflegen statt im ursprünglichen Excel-Dokument.
  • CSV-Importer: Einen pragmatischen Mittelweg gibt es in Form von Extensions, welche CSV-Dateien (die man mit Excel schreiben und lesen kann) importieren und dann im Frontend der Website als HTML-Tabellen ausgeben. Diese Lösung ist nicht unendlich flexibel, und die Datenpflege – sofern die Daten überhaupt ändern – erfolgt weiterhin mit Excel (die aktualisierte Datei wird dann manuell auf den Server gespielt). Dafür ist dieser Weg ausgesprochen effizient und unkompliziert. Dieser Artikel stellt drei solche Extensions vor.

csvdisplay

image

Die Extension csvdisplay von Christian Wolff ist schon älter: Das letzte Update liegt eineinhalb Jahre zurück, sie funktioniert aber auch mit der aktuellen TYPO3-Version 4.2.6 einwandfrei. Wer eine möglichst einfache Lösung sucht, ist hier am besten bedient, denn csvdisplay tut wirklich nichts anderes als eine CSV-Datei in eine sauber formatierte HTML-Tabelle umzuwandeln. Diese Tabelle kann dann weder gefiltert noch sortiert werden. Die Formatierung erfolgt über CSS, wobei auch alternierende Zeilenfarben (“Zebra”) möglich sind. Was fehlt ist ein automatisches Paging – auch grosse Tabellen werden auf einer einzigen Webpage abgebildet.

Im Backend gibt es einige wenige Konfigurationsmöglichkeiten: So können die Spaltentitel entweder aus der CSV-Datei gezogen oder aber individuell vergeben werden. Ausserdem kann csvdisplay wahlweise alle URLs und E-Mail-Adressen verlinken. Hilfreich ist ferner die Zeichensatzkonvertierung, mit der man den Inhalt der CSV-Datei beispielsweise von ISO-8859-1 nach UTF-8 konvertieren kann, um die korrekte Darstellung von Sonderzeichen sicherzustellen.

bit_csvtable

image

Die Extension bit_csvtable von Oliver Hirsch (BIT IT Service GmbH) verfolgt einen sehr ähnlichen Ansatz. Der entscheidende Unterschied besteht darin, dass im Frontend ein Suchformular zur Verfügung steht, über das der Website-Besucher den Datenbestand filtern kann (vgl. Screenshot am Artikelanfang). Seit der Version 1.1.1 bietet die Extension eine Zeichensatzkonvertierung (automatisch und manuell), zudem können die Begrenzungszeichen für die einzelnen Spalten in der CSV-Datei definiert werden. Die Probleme, auf die ich bei früheren Versionen der Extension gestossen war, wurden vom Entwickler auf Anfrage rasch behoben, so dass diese Extension inzwischen meine Favoritin für den CSV-Import ist.

cag_longlists

image

Die Extension cag_longlists von Jens Eipel ist mit Abstand die flexibelste, aber leider auch die komplexeste Extension in dieser Übersicht. So können die Daten nicht nur aus einer CSV-Datei, sondern auch aus einer Datenbank stammen. Der Datenbestand kann durchsucht, gefiltert und sortiert werden, und auch ein automatisches Paging für grössere Tabellen ist vorhanden. Leider ist die Dokumentation derart unvollständig, dass man bei der Konfiguration auf sich allein gestellt ist. Aus diesem Grund habe ich diese Extension nicht im Detail getestet. Eine Besprechung dieser Extension finden Sie hier.