TYPO3 Tuning: Kontaktdaten als vCards anbieten

image

Die Idee ist bestechend: Wo immer man auf seiner Website Kontaktinformationen anzeigt, bietet man diese auch zum Download im vCard-Format an. So muss ein Website-Besucher die Daten nicht manuell in seinem Adressbuch erfassen, sondern kann sie per Mausklick importieren. vCard ist standardisiert und wird von den wichtigsten E-Mail-Programmen (darunter Microsoft Outlook, Apple Mail, Google Gmail, Mozilla Thunderbird und Lotus Notes) unterstützt.

In der Praxis ist dies leider nicht ganz so einfach wie es klingt – zumindest wenn man TYPO3 nutzt und eine geeignete Extension sucht. Dabei sind es zwei sehr verschiedene Probleme, denen man immer wieder begegnet:

  1. Kontaktdaten gibt es in TYPO3 an mehreren Orten. In der Regel setzt man dafür die Extension tt_address ein, welche ihre Daten in der gleichnamigen Tabelle speichert. Aber auch die Profile der Frontend Users sind letztlich Kontaktdaten, und diese finden sich in der Tabelle fe_users. Einzelne Extensions nutzen weder die eine noch die andere Tabelle und speichern Kontaktdaten individuell.
  2. Sonderzeichen erscheinen in der vCard-Datei nicht automatisch so, wie man sie auf der Website sieht. Probleme mit Umlauten und anderen Sonderzeichen scheinen eher die Regel als die Ausnahme zu sein, besonders wenn man sein System mit UTF-8 aufgesetzt hat. Aus “Zürich” wird da rasch einmal “Zürich”, und somit sind die vCards natürlich nicht wirklich brauchbar. Bei meinen Tests war ich fast durchgängig mit diesem Problem konfrontiert, und ich fürchte, dass man zu dessen Lösung die Extensions anpassen müsste.
    UPDATE: Zumindest bei der Extension simplevcard sollte dieses Problem nun behoben sein: Mit der Version 0.3.1 wurde die Codierung von UTF-8 auf ISO-8859-1 geändert – gemäss dem Entwickler Andrew Plank ist Microsoft Outlook nicht in der Lage, UTF-8-vCards korrekt zu verarbeiten.

vcard

image Diejenige Extension, welche aufgrund ihres Namens eigentlich die Standlösung für diesen Zweck sein sollte, macht etwas ganz anderes, als man denkt: vcard erzeugt keine vCards im Frontend der Website, sondern im Backend. Dabei wird dem Kontextmenü im Seitenbaum ein neuer Eintrag “vCard Export” hinzugefügt, welcher bei allen Seiten erscheint, die Adressdatensätze von tt_address oder fe_ussers enthalten. Der Export umfasst immer sämtliche Datensätze und erfolgt in Form eines ZIP-Archivs, das die einzelnen vCards enthält.

simplevcard

Auch bei simplevcard täuscht der Name: So einfach ist der Einsatz dieser Extension nämlich nicht. Im Prinzip ermöglicht es simplecard, bei Adresslisten, die auf tt_address basieren, durch den Marker ###VCF_LINK### im Template einen vCard-Download zu integrieren. Die Schwierigkeit liegt nicht direkt in diesem Konzept, sondern darin, dass simplevcard die Installation von realurl voraussetzt (warum auch immer), und jene ist nicht ganz trivial. Für mich war es jedenfalls Grund genug, diesen Ansatz nicht weiterzuverfolgen.

image

neeg_vcard

Sehr einfach in der Handhabung ist dafür bei neeg_vcard (vgl. Screenshot oben). Diese Extension stellt ein Plugin bereit, über das jeweils eine einzelne Adresse als vCard publiziert werden kann. Die Adressdaten werden dabei im Flexform des Plugins gepflegt. Als Nachteil ist zu nennen, dass diese Daten weder in tt_address noch in fe_users gespeichert werden, sondern in tt_content. Es handelt sich also um eine Insellösung, die sich nur für eine kleine Menge von Kontaktdaten eignet.

wt_directory

wt_directory ist eine mächtige und flexible Lösung, um Kontaktdaten aus tt_address im Frontend auszugeben. Während der Gesamteindruck sehr positiv ist, funktionierte bei mir ausgerechnet der vCard-Export nicht korrekt: Zwar wird eine VCF-Datei erzeugt, diese enthält allerdings nicht nur die vCard, sondern den gesamten HTML-Code der betreffenden Webpage – für E-Mail-Programme ist dies schlicht ein ungültiges Dateiformat. Ob dies nun an wt_directory liegt oder an einer anderen Extension in meiner TYPO3-Installation vermag ich nicht zu sagen – wie eine kurze Recherche zeigt haben allerdings auch andere Anwender von ähnlichen Problemen berichtet.

felists: Die TYPO3-Extension, welche die Entwicklung einer eigenen Extension erspart

image

Stellen Sie sich vor, Sie betreiben eine Website für Imker und möchten nun ein Verzeichnis mit Dokumentarfilmen über die Bienenzucht anlegen. Das Verzeichnis soll nicht einfach als Standard-Content-Element abgebildet werden, sondern in strukturierter Form, damit das Verzeichnis durchsucht und ggf. auch exportiert werden kann. Zudem möchten Sie, dass die Besucher Ihrer Website selbst neue Filme erfassen können.

Die meisten TYPO3-Administratoren werden in einer solchen Situation die Entwicklung einer eigenen Extension vorschlagen. Das ist jedoch aufwändig und anspruchsvoll, weshalb viele Dokumentarfilmsammlungen über Bienenzucht auf dieser Welt nie in die Realität umgesetzt worden sind. Das ist schade, denn mit der Extension felists von Daniel Pötzinger gäbe es eine Lösung, welche auch ohne Programmierung zum Ziel führt: Mit felists kann man beliebige Datenbanktabellen definieren, deren Inhalt im Frontend publizieren und sogar ein Bearbeitungsformular für Frontend Users bereitstellen.

image Die Extension installiert ein eigenes Modul in der Backend-Navigation, in dem die Datenbanktabellen (hier heissen sie Listen) verwaltet werden. Ein Assistent führt durch die Erstellung und Bearbeitung der Listen (vgl. Screenshot oben). Dabei steht eine grosse Auswahl an Feldtypen zur Auswahl (vgl. Screenshot rechts), inklusive Referenzen auf andere Tabellen (“Database Relation”), was auch komplexere Datenstrukturen erlaubt. Je nach Feldtyp gibt es dann mehr oder weniger zusätzliche Parameter, mit denen man das Datenbankfeld sowie das Formularelement zur Bearbeitung der Daten definiert. Der ganze Prozess ist zwar nicht trivial, aber gut strukturiert und setzt keine Programmierkenntnisse voraus.

Was mich stutzig macht ist, dass diese Extension zwar schon über zweieinhalb Jahre existiert, aber erst gut 200 Downloads verzeichnet – und dies obwohl sie sogar im Videopodcast von Kasper Skårhøj vorgestellt wurde. Das mag unter anderem daran liegen, dass das Handbuch nicht viel mehr als eine Feature-Liste umfasst – gerade bei dieser nicht ganz simplen Extension wäre eine gute Dokumentation sicher hilfreich. Ansonsten gäbe es nur zwei Erklärungen: Entweder ist die Extension unfertig bzw. fehlerhaft – oder aber wir haben es hier mit einer Perle zu tun, die schlicht nicht diejenige Beachtung gefunden hat, die sie verdienen würde. Wer hat Erfahrung mit felists?

nxpinboard: Pinboards, Post-Its, Lagekarten und mehr

nxpinboard

Die Fähigkeit der TYPO3-Extension nxpinboard liegt primär darin, Texte und Bilder auf einem grafischen Hintergrund zu positionieren, wobei diese Elemente über das Backend editiert werden können. Das hört sich etwas abstrakt an, kann aber für sehr konkrete Zwecke genutzt werden: Obiges Beispiel zeigt eine Post-It-Sammlung, wobei die Post-Its aus normalem Browser-Text bestehen und die Hintergrundgrafik (das Post-It) austauschbar ist.

Eine andere Anwendung sind Lagekarten wie das nachstehende Beispiel, wo bestimmte Punkte mit Stecknadeln (oder einem anderen grafischen Symbol) markiert und beschriftet werden (Text wird per Mouseover eingeblendet). Eine hübsche Extension, deren Anwendungsmöglichkeiten aber erst erforscht sein wollen, denn die Standard-Pinwand, die einem nach der Installation angezeigt wird, ist nicht speziell ansprechend und könnte zu falschen Schlüssen verleiten.

nxpinboard

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.

Das Extension-Angebot für TYPO3: Ein Zwischenbericht nach den ersten 1’300 Einträgen im TYPO3 Extensions Index

image

Seit bald einem Jahr dokumentiere ich nun im TYPO3 Extensions Index Erweiterungen für das CMS TYPO3. Ich habe in dieser Zeit einige Dutzend Extensions selbst installiert und getestet sowie einige hundert Dokumentationen durchgesehen. Die Erweiterbarkeit von TYPO3 wird ja allgemein gelobt – aber wie gut ist das Angebot an frei verfügbaren Extensions tatsächlich? Zeit für einen ganz persönlichen (und sicher auch subjektiven) Zwischenbericht.

Was unbestritten ist: Die Vielfalt der Extensions im TYPO3 Extensions Repository (TER) ist beeindruckend. Es gibt kaum eine Anwendung, für die es nicht auch eine Extension gibt. In der Regel besteht die Schwierigkeit weniger darin, überhaupt eine Extension zu finden, sondern darin, aus dem grossen Angebot die richtige auszuwählen.

Was man ebenfalls sagen darf: Es gibt viele gute Extensions. “Gut” heisst in diesem Fall, dass sie eine wesentliche Funktionserweiterung für das Basis-CMS darstellen, sinnvoll konzipiert sind, fehlerfrei funktionieren, sauber in das Gesamtkonzept von TYPO3 integriert sind, über eine anständige Dokumentation verfügen und regelmässig aktualisiert werden. Weil das TER jedem Entwickler offensteht und es keine eigentliche Qualitätssicherung gibt, findet man allerdings auch diverse Extensions, welche diesbezüglich erhebliche Mängel aufweisen.

Ein grosses Problem sind auch veraltete Extensions – sei es, dass sie nicht mehr gepflegt werden (und deshalb nicht mehr kompatibel zu neueren TYPO3-Versionen sind), sei es, dass es längst wesentlich bessere Extensions für denselben Zweck gibt, sei es, dass die Funktionalität inzwischen im TYPO3-Core enthalten ist. Dass ein Entwickler eine veraltete Extension aus dem TER zurückzieht oder wenigstens als “obsolete” markiert, ist leider eher die Ausnahme als die Regel.

Schade finde ich auch, dass viele Entwickler lieber eine neue Extension lancieren als sich an der Verbesserung einer bestehenden Extension zu beteiligen. Dies führt dazu, dass es für viele Zwecke eine Dutzend Extensions gibt, welche mehr oder weniger dasselbe leisten. Viele Extensions stellen auch Zusatzfunktionen zu anderen Extensions bereit; im Einzelfall mag es sinnvoll sein, diese Zusatzfunktion auszugliedern, in der Regel wäre es aber benutzerfreundlicher, wenn man sie in die Basisextension integrieren würde.

Zusammengefasst ist die grosse Entwickler-Community sowohl der Vor- als auch der Nachteil von TYPO3. 3807 Extensions gibt es derzeit im TER – das ist beeindruckend, in der Praxis aber meist viel zu viel. Idealerweise gäbe es für jeden Zweck nur zwei, drei Extensions, die dafür von einer grösseren Entwicklergruppe intensiv gepflegt würde und so flexibel konzipiert wäre, dass sie ein Dutzend andere Extensions überflüssig machen würde. Ansätze dafür gibt es, aber es ist leider noch nicht die Regel. 

list_adv: Endlich vernünftig blättern im TYPO3-List-Modul

image

TYPO3 ist einerseits die eierlegende Wollmilchsau unter den Content Management Systemen – andererseits wird es für seine Usability nie einen Preis gewinnen. Gewisse Details nerven sogar ernsthaft in der täglichen Arbeit, beispielsweise das rudimentäre Paging, mit dem man im List-Modul durch die Datensätze blättern muss (vgl. Screenshot oben).

Die Extension list_adv bringt hier eine wesentliche Verbesserung (vgl. Screenshot unten): Man kann bequem vor und zurück blättern und auch direkt auf bestimmte Seiten springen. Die Extension ist im Handumdrehen installiert und erfordert keinerlei Konfiguration.

image

wrg_anotherbelogin: Das bessere Backend Login für TYPO3

image

Auf den ersten Blick ist wrg_anotherbelogin nichts anderes als eine weitere Extension, mit der ein vergesslicher TYPO3 Backend User sein Passwort zurücksetzen kann. Doch obwohl die Extension offiziell so heisst, ist sie weit mehr als nur Another Backend Login.

Die Hauptfunktion besteht nämlich nicht darin, den Zugang zum Backend zu ermöglichen, sondern ihn zu unterbinden, falls Verdacht auf Missbrauch besteht. Konkret kann TYPO3 so konfiguriert werden, dass ein Backend User Account nach einer bestimmten Anzahl von fehlgeschlagenen Login-Versuchen automatisch gesperrt wird. Nach demselben Prinzip können auch IP-Adressen blockiert werden, was Brute-Force-Attacken erheblich erschwert. Über alle relevanten Ereignisse kann der Administrator per E-Mail benachrichtigt werden.

Meiner Meinung nach müssten alle diese Funktionen fix in den TYPO3 Core integriert werden. Bis es soweit ist, sollte wrg_anotherbelogin zur Standardausstattung einer jeden TYPO3-Installation gehören.

ke_troubletickets: Schöner Issuetracker für TYPO3

image

Will man einen Helpdesk oder einen Issue Tracker mit TYPO3 realisieren, dann hat man nicht sehr viele Optionen: mg_help und fl_bugtracker heissen die beiden Extensions, welche solches möglich machen. Seit kurzem gibt es nun aber noch eine dritte – und sehr überzeugende – Option: ke_troubletickets.

Wie obiger Screenshot zeigt bietet ke_troubletickets zunächst ein optisch sehr ansprechendes Frontend. Die Installation folgt den TYPO3-Standards und ist – auch dank des guten Handbuchs – rasch erledigt.

Auch bezüglich der Funktionalität hat die Extension einiges zu bieten: Trouble Tickets können Benutzern zugewiesen (Rollen: Besitzer, Verantwortlicher, Beobachter) sowie in Kategorien und Projekte gegliedert werden. Attachments werden ebenso unterstützt wie Benachrichtigungen per E-Mail. Welche Felder im Formular zur Erfassung eines Tickets angezeigt werden, lässt sich über das HTML-Template steuern; zudem sind gewisse Felder nur für die eigenen Mitarbeiter sichtbar. Ein Backend-Modul stellt Übersichten und statistische Daten zum Ticketsystem bereit. Die Tickets können auch im CSV-Format exportiert werden.

ke_troubletickets setzt eingeloggte Frontend Users voraus, die Website muss also zusätzlich ein Login-Formular bereitstellen. Ausserdem muss date2cal für den Datumswähler installiert werden. Falls gewünscht wird auch naw_securedl unterstützt, um Attachments vor unberechtigtem Zugriff zu schützen.

TypoGento: Single Sign-on mit TYPO3 Website und Magento E-Shop

image

Dank verschiedener Extensions – die wichtigsten sind commerce und tt_products – kann man eine TYPO3-Website auch mit Shop-Funktionalitäten ausrüsten. Verglichen mit einer modernen Shop-Software hat eine solche Lösung allerdings ihre Grenzen. Wer parallel TYPO3 als CMS und Magento als E-Shop einsetzen und trotzdem eine integrierte Website mit Single Sign-on anstrebt, sollte sich TypoGento anschauen. Die professionell gemachte Projekt-Website ist jedenfalls sehr vielversprechend, der Demo-Shop bleibt den Beweis, dass ein Single Sign-on möglich ist, allerdings schuldig.

Einen ausführlichen Artikel zu TypoGento findet man in der neusten Ausgabe des T3N Magazins (Nr. 14, S. 102-105).