Die reiche Ernte der TYPO3 User Experience Week 2009 (T3UXW09)

Podcast der TYPO3 User Experience Week 2009

Im November letzten Jahres haben sich 30 Designer und Projektleiter aus der Community im deutschen Behringen eine Woche lang mit der Usability von TYPO3 beschäftigt. Dieses Treffen war ausgesprochen fruchtbar, wie man der kürzlich veröffentlichten Podcast-Serie entnehmen kann. Nachfolgend eine knappe Zusammenfassung der wichtigsten Verbesserungen, die sich voraussichtlich in der Version 4.4 von TYPO3 wiederfinden werden. Wer sich für die Details des zukünftigen Backends interessiert sollte sich die fünf Podcast-Episoden, welche zusammen rund eine Stunde dauern, auf jeden Fall anschauen.

Die Eingabemasken im Page-Modul wurden generell aufgeräumt und gewisse Parameter umbenannt. Die Masken wirken nun wesentlich ruhiger, weil die zahlreichen Buttons pro Content-Element erst beim Mouseover sichtbar werden. Zudem gibt es nun (auch ohne Extensions wie gb_bedraganddrop) Drag & Drop für Content-Elemente, auch über Spalten hinweg.

TYPO3: Drag & Drop von Content-Elementen im Backend

Die Content-Elemente können nicht nur in den bekannten Spalten angezeigt werden (Columns View), sondern neu auch im sogenannten Grid (Layout View), welcher die Raumaufteilung des Frontends nachempfindet. Ich vermute einmal, dass hier Extensions wie me_pagelayout oder be_layout Pate gestanden haben.

TYPO3: Neue Backend-Suche mit Autocomplete

Die Suche im Backend wurde in verschiedenen Punkten verbessert. Zunächst ist das Suchfeld nun immer sichtbar, muss also nicht mehr ausgeklappt werden. Dann kann man durch das Voranstellen des #-Zeichens gezielt nach bestimmten Datentypen suchen (z.B. #user:martin). Es gibt ferner eine Autocomplete-Funktion, welche laufend Treffer – sortiert nach Datentyp – ausweist. Auch die Filterfunktion für den Seitenbaum wurde optimiert.

TYPO3: Das Introduction Package, die neue Demo-Website

Für mich die vielleicht wichtigste Verbesserung ist das Introduction Package. Dabei handelt es sich um eine visuell ansprechende und im Sinne einer Best Practice aufgebaute Demo-Website, die man am Ende des Installationsprozesses mitinstallieren kann. Das schafft nicht nur die unsägliche Demo-Websites des FC Bigfeet aus der Welt, sondern verhindert auch, dass TYPO3-Neulinge an ihrer frischen TYPO3-Installation verzweifeln, weil man ohne die richtigen Konfigurationseinstellungen keinen vernünftigen Output im Frontend erhält. Das war längst fällig, und es scheint richtig gut gemacht zu sein.

TYPO3: Der neue Backend-Skin und der überarbeitete Seitenbaum

Der Standard-Backend-Skin, der in der Vergangenheit mehrfach leicht angepasst worden war, wurde weitere optimiert. Dies betrifft einerseits den technischen Aufbau (Handling von Icons und CSS, Nutzung von ExtJS, Verzicht auf Frames), andererseits aber auch das Design, das seine Herkunft zwar nicht verleugnet, aber doch deutlich edler und kontrastreicher daherkommt. Ausserdem wurden an vielen Stellen Korrekturen vorgenommen, um insgesamt ein konsistenteres und standardkonformeres Backend zu erhalten.

Viele Detailverbesserungen hat auch der Seitenbaum – der nun ebenfalls komplett auf ExtJS basiert – erlebt. Man kann ihn wegklappen, wenn er Platz benötigt wird, er bietet ein sehr schönes Drag & Drop (auch beim Einfügen von neuen Objekten), und er erlaubt das In-Place Editing von Seitentiteln.

df imgwatermark: Bilder automatisch mit Wasserzeichen versehen

image

Um Copyright-Ansprüche zu dokumentieren fügen viele Fotografen ihren Bildern ein sogenanntes Wasserzeichen hinzu. Bei einer grösseren Anzahl Bilder ist das eine langwierige und langweilige Arbeit. Mit der TYPO3-Extension df_imgwatermark lässt sich dies mit wenig Aufwand automatisieren. Der Text des Wasserzeichens wird als TypoScript-Konstante hinterlegt, und auch einige weitere Parameter (z.B. die Position auf dem Bild, Schriftgrösse und –farbe oder das Antialiasing) werden auf diesem Weg gesetzt. Zu diesem Zweck steht im Constants Editor eine entsprechende Eingabemaske zur Verfügung. Um das Wasserzeichen dann für ein bestimmtes Content-Element zu aktivieren muss nur noch die entsprechende Checkbox in den Bildeigenschaften angewählt werden.

image

Die Extension ist schon älter (das letzte Update erfolgte 2008), aber sie erfüllt weiterhin ihren Zweck. Leider fehlt das Handbuch, und auch in der Maske des Constants Editor sind die Parameter nur sehr knapp beschrieben. Zudem gibt es dort einen kleinen Bug, der das Dropdown für die Textausrichtung nach jedem Speichern wieder auf “links” zurücksetzt (wodurch man sie beim nächsten Speichern ungewollt ändert). Hat man aber einmal das Konzept verstanden und die Parameter definiert, dann ist die Extension ebenso praktisch wie simpel.

general_data_display: Einfache Datenbanken mit TYPO3 realisieren

Beispieldatenbank mit general_data_display

Vor einiger Zeit habe ich mich in diesem Blog mit Extensions befasst, welche Daten in Form von CSV-Dateien importieren und auf einer TYPO3-Website publizieren können (vgl. CSV-Dateien auf TYPO3-Websites publizieren mit csvdisplay und bit_csvtable). Die Extension general_data_display geht noch einen Schritt weiter: Damit kann man eine eigentliche Datenbank erstellen, d.h. eine Datenstruktur definieren und Daten erfassen – und zwar nicht etwa nur als Backend-Benutzer, sondern auch als Frontend-Benutzer.

Ein Beispiel: Nehmen wir an, Sie sind der Administrator der TYPO3-Website eines Vegetarier-Vereins. Der Verein möchte eine Datenbank mit vegetarischen Lebensmitteln auf seiner Website publizieren, die nach und nach durch die Mitglieder erstellt wird. Als Administrator legen Sie lediglich eine neue Seite an, binden das Plugin von general_data_display ein und vergeben geeignete Zugriffsrechte. Berechtigte Frontend-Benutzer können danach Kategorien und Datenfelder selbst definieren sowie Datensätze anlegen, bearbeiten und löschen. Und alle übrigen Website-Besucher können die Datenbank im Volltext durchsuchen.

Die Komplexität der Datenbanken, die Sie so erstellen können, hat natürlich Grenzen. Die Datensätze können zwar beliebig viele Felder haben, aber nur vom Typ Text (wahlweise ein- oder mehrzeilig) oder Ganzzahl. Eine vordefinierte Auswahl als Dropdown-Menü gibt es nur für die Kategorie. Alle Felder sind Pflichtfelder, ansonsten kann man keine Validierung vorgeben. Und eine relationale Datenbank mit verknüpften Tabellen liegt sowieso ausserhalb der Möglichkeiten dieser Extension.

Trotzdem: general_data_display ist eine sehr interessante Neuveröffentlichung. Bereits in der Version 1.0.1 bietet sie eine sinnvolle Ausstattung, welche für viele Bedürfnisse ausreicht. Und man darf gespannt sein, was zukünftige Versionen bringen (unter anderem hoffentlich auch ein Manual, welches derzeit noch fehlt).

TYPO3: News per iPhone publizieren

Screenshot: TYPO3 iPhone App (1)Screenshot: TYPO3 iPhone App (1)

Mit einer von der Hannoveraner Agentur Net & Works entwickelten App kann man direkt von seinem iPhone aus tt_news-Artikel auf einer TYPO3-Website publizieren. Die TYPO3 iPhone App nutzt hierfür den TYPO3 Webservice, der in Form der Extension typo3_webservice implementiert ist. Dieser Webservice erlaubt es externen Anwendungen, Daten zu lesen, zu erstellen, zu bearbeiten und zu löschen. Die iPhone App ist also nur eine von vielen möglichen Anwendungen; sie ist kostenlos und derzeit erst als Proof of Concept zu verstehen. Net & Works stellt einen Demo-Server zur Verfügung, so dass man die iPhone App testen kann, ohne gleich eine eigene TYPO3-Website dafür einrichten zu müssen. Für die zeitnahe Berichterstattung von Veranstaltungen oder für das Mobile Blogging ist die TYPO3 iPhone App eine interessante Lösung.

wil_importcsv: Datenimport für TYPO3

Screenshot: wil_importcsv

Wie importiert man Daten, die in Form einer CSV-Datei vorliegen, in eine beliebige TYPO3-Datenbanktabelle? Beispielsweise mit der Extension wil_importcsv. Das Vorgehen könnte nicht einfacher sein:

  • Zunächst wird im Seitenbaum diejenige Seite (kann auch ein SysFolder sein) ausgewählt, in die man die Daten importieren möchte.
  • Danach wählt man die zu importierende CSV-Datei, das darin verwendete Trennzeichen zwischen den Feldern (normalerweise ein Strichpunkt) sowie die Zieltabelle aus (vgl. Screenshot).
  • Anschliessend erfolgt das Mapping, bei dem man die Felder der CSV-Datei (wird automatisch aus der ersten Zeile der CSV-Datei extrahiert) den Spalten der Datenbanktabelle zuordnet.
  • Schliesslich erhält man eine tabellarische Vorschau des zu erwartenden Resultats und kann den Import per Knopfdruck auslösen.

Die Extension installiert ein Modul im TYPO3-Backend, das auch für Nicht-Administratoren zugänglich ist. In der Konfiguration kann man gewisse Einschränkungen vornehmen, beispielsweise dass normale Backend User nur in ausgewählte Datenbanktabellen importieren dürfen.

Die Extension hat insofern noch eine besondere Rafinesse, als die importierten Daten je nach dem nicht einfach der Datenbank hinzugefügt werden, sondern dass bestehende Datensätze mit der gleichen UID aktualisiert werden.

Auf der anderen Seite habe ich aber auch einen Bug gefunden: Wenn die CSV-Datei nicht nur UIDs, sondern auch PID (Page IDs) enthält, werden die Daten nicht in die entsprechende Seite (und auch nicht in die ausgewählte Seite) importiert, sondern immer in die Seite mit der ID 1. Das Problem kann man nur umgehen, indem man die PID aus der CSV-Datei löscht.

TYPO3 Watchdog: Der Sicherheitsdienst für TYPO3-Websites

TYPO3 Watchdog

Es gibt viele Dinge, die man als TYPO3-Administrator beachten muss, wenn man seine TYPO3-Installation zuverlässig gegen Angreifer schützen will (vgl. TYPO3 Security Checklist: 47 Massnahmen, um eine TYPO3-Installation sicherer zu machen). Der Service TYPO3 Watchdog bietet hierbei Unterstützung, indem er TYPO3-Websites auf bekannte Probleme überprüft. Hierzu muss auf dem zu überwachenden System die Extension aba_watchdog installiert werden. Wenn man dieses System dann bei TYPO3 Watchdog registriert, erhält man eine ID zugewiesen, die man in die Extension-Konfiguration einträgt. Und schon liefert der Dienst Vorschläge für Massnahmen, um die Sicherheit zu verbessern – auf der Watchdog-Website sowie per E-Mail.

Das ist grundsätzlich ein interessantes Konzept, aber man darf nicht zu viel erwarten: Die Sicherheitsrisiken, die TYPO3 Watchdog derzeit erkennt, lassen sich leicht auch über das TYPO3-Backend finden. Derzeit prüft der Dienst vor allem Versionsnummern von Core und Extensions, ausserdem erkennt er ein nicht deaktiviertes Install Tool. Zu einer wirklich sicheren TYPO3-Installation gehört aber weit mehr als das.

Wer TYPO3 Watchdog nutzt muss sich ausserdem bewusst sein, dass er mit damit nicht nur Sicherheitsrisiken eliminiert, sondern auch neue schafft. Die Extension aba_watchdog öffnet eine Hintertüre zum System, die potentiell missbraucht werden kann. Auch die Website www.typo3watchdog.com ist ein attraktives Angriffsziel, denn wer sie knackt erhält Einblick in die Sicherheitslücken aller registrierten Websites.

Ich möchte mir kein abschliessendes Urteil über TYPO3 Watchdog erlauben, zumal der Dienst offenbar noch im Aufbau ist. Man würde sich aber in falscher Sicherheit wiegen, wenn man glauben würde, dass dies eine Patentlösung für alle Sicherheitsprobleme ist.

Nachtrag: Am 15. Dezember 2009 wurde bekannt, dass die Watchdog-Extension in der Version 2.0.2 eine Sicherheitslücke aufweist. Es wird ein Update auf die Version 2.0.3 empfohlen.

pitgoogleforecast: Wettervorhersage für TYPO3-Websites in 5 Minuten

Wettervorhersage mit pitgoogleforecast Eine lokale Wettervorhersage gehört bei einer Website aus dem Tourismussektor ganz einfach dazu. Sie soll möglichst mit hübschen Piktogrammen ausgestattet sein und vor allem über einen Datenfeed automatisch aktualisiert werden. Das kann aufwändig werden – muss es aber nicht, wie die TYPO3-Extension pitgoogleforecast zeigt: Diese greift auf die API von Google Weather zurück und zeigt wahlweise das Wetter des aktuellen Tages oder eine 4-Tages-Vorhersage. Im Backend muss man Ort und Sprache erfassen, ansonsten funktioniert die Extension out of the box. Etwas unschön ist, dass die 4-Tages-Vorhersage immer einen englischen Titel hat (also die Spracheinstellung nicht berücksichtigt) und jeden Tag den Ort mit ausgibt (welcher logischerweise immer derselbe bleibt). Trotzdem stehen bei dieser Extension Aufwand und Ertrag in einem guten Verhältnis.

extensionlist: Welche Extensions werden auf welchen Seiten eingesetzt?

Screenshot: extensionlist

Bei grösseren TYPO3-Websites mit zahlreiche Extensions kann man leicht den Überblick verlieren, welche Extension denn nun auf welcher Seite eingesetzt wird. Die Extension extensionlist verschafft diesbezüglich den Überblick: Sie gibt im Backend eine Liste aus, welche alle Extensions und die zugehörigen Seiten aufführt. Dabei kann man wahlweise nur Extensions mit einem List Type bzw. einem Content Type anzeigen lassen. Zudem kann man gezielt nach einem bestimmten List Type bzw. Content Type suchen, wobei auch “normale” Content Types (also solche, die nicht zu einer Extension gehören) gefunden werden, wie z.B. text, image oder mailform.

Der Ansatz von extensionlist gefällt mir, aber ich sehe auch Verbesserungspotential. Zunächst ist nicht ganz einzusehen, warum es dafür ein separates Modul im linken Navigationsbereich braucht – im Extension Manager wäre diese Funktion mindestens so gut aufgehoben gewesen. Dann gibt es ein ärgerliches Problem im Firefox, dass längere Listen keinen Scrollbar erhalten. Ferner würde ich mir wünschen, dass die Liste irgendwie die Seitenhierarchie abbildet, denn die Sortierung nach Page ID hat keinen praktischen Wert; auch eine Gruppierung nach Extension wäre sicher hilfreich. Dass die Liste auch gelöschte Seiten miteinbezieht mag in Spezialfällen nützlich sein – normalerweise möchte man diese Seiten aber nicht angezeigt bekommen, und hier fehlt die entsprechende Filtermöglichkeit. Und schliesslich sollte man das Resultat auf bestimmte Teilbäume der Website beschränken können.

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.

Die wichtigsten Open Source CMS

image

Bei der Evaluation eines Open Source CMS gilt es diverse Faktoren zu beachten. Einer davon ist sicher die Verbreitung, denn eine grosse Installationsbasis und eine aktive Community sind Indikatoren dafür, wie gut es mittelfristig um Support und Weiterentwicklung eines CMS bestellt ist.

Die Studie Open Source CMS Market Share 2009, welche von der Web-Agentur Water & Stone erstellt wurde, erfasst folgende Systeme (der Vermerk “neu” heisst dabei, dass ein System gegenüber der letztjährigen Studie neu aufgenommen wurde):

  • Alfresco (neu)
  • CMS Made Simple
  • DotNetNuke (neu)
  • Drupal
  • e107
  • eZ Publish
  • Jahia (neu)
  • Joomla!
  • Liferay (neu)
  • MODx
  • OpenCms (neu)
  • phpWebSite
  • Plone
  • SilverStripe (neu)
  • Textpattern (neu)
  • TikiWiki
  • Typo3
  • Umbraco (neu)
  • WordPress
  • Xoops

Diese Auswahl scheint mir insgesamt repräsentativ, und die Neuzugänge sind nachvollziehbar, auch wenn man in Einzelfällen immer geteilter Meinung sein kann. Nur auf die Short List (aber nicht in die endgültige Auswahl) geschafft haben es: Concrete5, dotCMS, Hippo CMS, Magnolia und mojoPortal. Folgende Systeme wurden gegenüber dem Vorjahr aus der Studie eliminiert: b2evolution (eine Blog-Software), Elgg (eine Social Networking Plattform), Mambo (der Vorgänger von Joomla!), MediaWiki (eine Wiki-Plattform), PHP-Nuke (ein altgedientes CMS mit Community-Funktionalität, das allerdings durch zahlreiche Abspaltungen geschwächt wurde und eher stagniert), Pligg (eine Social Bookmarking Software) und SPIP (ein im französischen Sprachraum verbreitetes CMS). Insgesamt hat eine Fokussierung auf eigentliche CMS stattgefunden, während speziellere Software eliminiert wurde – eine gute Entscheidung.

Fazit der Studie: Der Open-Source-CMS-Markt wird dominiert von WordPress, Joomla! und Drupal – dasselbe Resultat ergab sich auch schon in der letztjährigen Studie. Dass alle drei Systeme in PHP programmiert sind ist typisch für diesen Markt: Auch wenn die Studie diesmal verschiedene .NET-, Java- und Python-Systeme berücksichtigt, so ist PHP nach wie vor die dominierende Sprache für Open-Source-CMS.

Auf dem aufsteigenden Ast sind derzeit Alfresco, Liferay und MODx. Auf der anderen Seite verzeichnen DotNetNuke, Plone und Xoops insgesamt sinkende Werte, und phpWebSite, Textpattern sowie TikiWiki werden gar als gefährdet eingestuft.

Die Studie umfasst knapp 100 Seiten und legt detailliert dar, wie die Ergebnisse zustande gekommen sind. Dies ist auch wichtig, denn schliesslich basiert die gesamte Studie auf zwei nicht ganz einfach messbaren Parametern: Rate of Adoption und Brand Strength. Und um es noch ganz deutlich zusagen: Über die technische Qualität der Content-Management-Systeme sagt diese Studie rein gar nichts aus.

(via DECAF)

http://blog.decaf.de/2009/10/ueberlegungen-zum-2009-open-source-cms-report/