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.

Must Have Plugins für BuddyPress

Community-Plattform mit BuddyPress

Ich hatte kürzlich die Gelegenheit, für eine Community mit rund 100 Mitgliedern eine Web-Plattform auf Basis von BuddyPress zu implementieren. Die grundlegenden Möglichkeiten dieses Systems habe ich schon früher einmal beschrieben (vgl. Ein eigenes Social Network aufbauen mit WordPress und BuddyPress). In diesem Artikel geht es nun um Plugins, welche BuddyPress sinnvoll ergänzen und so aus der ganzen Plattform eine runde Sache machen.

Private BuddyPress plus Absolute Privacy: Sobald die Plattform nicht öffentlich, sondern nur einem bestimmten Personenkreis zugänglich sein soll, reichen die Möglichkeiten von BuddyPress nicht mehr aus. Erst die Kombination aus den beiden genannten Plugins hat in unserem Fall das gewünschte Resultat gebracht – die Details sind im Artikel BuddyPress vor fremden Blicken schützen beschrieben.

Secure Invites: Falls man die Registrierungsmöglichkeit für neue User ausblenden und nur noch Registrierungen von eingeladenen Personen ermöglichen will, dann wäre dieses Plugin einen Blick wert.

BP Group Documents: Gruppen in BuddyPress sind eine einfache, moderne Variante von Foren. Damit die Gruppenmitglieder Dokumente austauschen können, habe ich BP Group Documents installiert. Die Dokumente stehen dann innerhalb einer Gruppe unter einem separaten Navigationspunkt zur Verfügung.

EventPress ist nicht eigentlich eine Erweiterung für BuddyPress, sondern ein allgemeines WordPress-Plugin für Veranstaltungen. In unserem konkreten Projekt hat sich diese Lösung bewährt, um Veranstaltungen für Mitglieder anzukündigen und Anmeldungen entgegenzunehmen.

Featured Member Widget: Um neue oder anderweitig interessante Mitglieder vorzustellen bietet sich dieses einfache Plugin an. Damit können manuell ausgewählte User in der Randspalte mit Foto gezeigt werden.

BuddyPress Album+: Fotos hochladen und seinen Freunden zeigen gehört zu den Basisfunktionen eines jeden Social Networks. Dieses Plugin ermöglicht genau dies, indem es den Benutzerprofilen ein Fotoalbum hinzufügt. Uploads können wahlweise im öffentlichen Activity Stream oder nur Freunden gezeigt werden.

BuddyPress Like: Den “Gefällt mir”-Button kennen wir alle von Facebook. Dieses Plugin implementiert einen “Like”-Button in BuddyPress.

BuddyPress Mobile macht eine BuddyPress-Plattform ohne weiteren Aufwand auch auf einem SmartPhone benutzbar.

Buddypress Auto Group Join erlaubt es einem Administrator, Gruppen auszuwählen, denen neue User automatisch hinzugefügt werden sollen, beispielsweise eine “New Members”-Gruppe oder eine “Fragen & Antworten”-Gruppe.

BuddyPress Group Tags macht dann Sinn, wenn auf einer Plattform relativ viele Gruppen existieren. Die Gruppen können dann mit Schlagwörtern versehen und über eine Tag Cloud einfacher gefunden werden.

Tweet Blender erlaubt es, Tweets von manuell ausgewählten Streams innerhalb der Plattform anzuzeigen. So kann man beispielsweise sicherstellen, dass der offizielle Twitter Stream der Community auch für Nicht-Twitter-Benutzer  zugänglich ist. (Als weniger sinnvoll hat sich hingegen BuddyPress Group Twitter erwiesen, das eine ähnliche Funktionalität bietet: Weil die Tweets auch in den Activity Stream eingespiesen werden, verdrängen sie in der Praxis die Aktivitäten auf der Plattform.)

BP Profile Search: Die Standard-Suche von BuddyPress ist eigentlich schon sehr gut, denn sie sucht in allen Feldern der User-Profile. Gerade bei grösseren Communities ist BP Profile Search trotzdem hilfreich, weil man dann gezielt in bestimmten Feldern suchen und so die Treffermenge einschränkten kann.

BP User Profile Map ist ein einfach zu handhabendes Plugin, das den Wohnort eines Users in dessen Profil auf einer kleiner Google Map abbildet.

RS BuddyPress Activity Refresh aktualisiert den Activity Stream auch ohne manuellen Seiten-Reload automatisch in einem einstellbaren Sekundenintervall.

WP-Polls: Auch dieses Plugin ist nicht BuddyPress-spezifisch, macht aber auf einer Community-Plattform Sinn: Es bietet die Möglichkeit, einfache Umfragen in Form von Quick-Polls durchzuführen.

Firefox mit Cache Status

Screenshot: Firefox mit Cache Status

Firefox puffert geladene Seiten im RAM, aber auch auf der Festplatte. Um die beiden Cache-Typen jederzeit unter Kontrolle zu haben empfiehlt sich das Addon Cache Status, das in der Statuszeile des Browsers jederzeit Auskunft über die aktuelle Belegung gibt. Per Rechtsklick kann man den Cache auch löschen, was wesentlich schneller geht als wenn man dies über die Programmeinstellungen erledigen muss. Eine kleine, aber ungemein praktische Erweiterung insbesondere für Web-Entwickler.

Screenshot: Firefox mit Cache Status

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).

ke_stats 0.2.0: Statistik-Extension jetzt mit Charts, CSV-Export und IP-Filter

image

Vor gut eineinhalb Jahren ist mir die TYPO3-Statistik-Extension ke_stats erstmals aufgefallen, und sie hat sich seither langsam aber stetig weiterentwickelt. Mit der jüngsten Version 0.2.0 werden die Pageviews und Visits nun auch als Chart dargestellt, wobei dies nur für die Übersichtsdarstellung der letzten 12 Monate gilt. Hervorzuheben ist auch die Exportfunktion für Statistikdaten im CSV-Format sowie das IP-Filter (dank dem man beispielsweise alle Zugriffe aus dem eigenen Unternehmen effizient ausfiltern kann, welche die Statistik verfälschen). Ansonsten ist ke_stats weiterhin ein praxisorientiertes Statistik-Tool, das Echtzeitauswertungen erlaubt und sich auf die wesentlichen Daten konzentriert.

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

TYPOlight webShop: CMS mit voll integriertem Online-Shop

image Darauf habe ich lange gewartet: ein Online-Shop, der in Form einer Extension vollständig in das CMS TYPOlight integriert ist. Keine halbwegs gelungene Anbindung einer eigenständigen Shop-Lösung (wie z.B. Magento, osCommerce, PrestaShop oder Oxid), bei der man hinter den Kulissen trotzdem mit zwei verschiedenen Systemen arbeiten muss, sondern eine Lösung aus einem Guss. Hinter dem TYPOlight webShop steht die 2-Mann-Agentur fruitMedia aus Scharbeutz bei Lübeck, die ihre Extension seit heute ausführlich und übersichtlich auf einer professionell gestalteten Website (inkl. Demo) präsentiert. Wenn die Extension hält, was die Website verspricht, dann kann nichts schiefgehen.

Den TYPOlight webShop gibt es in zwei Versionen:

  • Die Community Edition ist kostenlos, besitzt aber die Einschränkung, dass keine Produktvarianten (sogenannte Artikel) möglich sind. Wenn Sie beispielsweise T-Shirts verkaufen und das Modell “Copacabana” in 3 Grössen und 5 Farben anbieten, dann ist das 1 Produkt mit 15 Artikeln, welche eigenständige Artikelnummern und eventuell auch individuelle Preise haben. Natürlich können Sie die T-Shirts auch als 15 eigenständige Produkte abbilden, aber dann vergeben Sie sich gewisse Vorteile, welche eine saubere Produkt/Artikel-Hierarchie hat.
  • Die voll ausgestattete Business Edition, welche Artikel unterstützt und auch Download-Artikel, Auktionsartikel sowie Artikel-Sets erlaubt, kostet knapp 600 Euro. Diese Lizenzgebühr ist pro Domain fällig. Ein solches Geschäftsmodell mag man deshalb kritisieren, weil Leo Feyer für sein TYPOlight ja auch kein Geld nimmt. Andererseits sprechen wir hier von einer Shop-Lösung, d.h. der Betreiber verdient mit seinem Shop ebenfalls Geld – die Lizenzgebühr ist also rasch amortisiert. Und für eine professionelle Extension mit ebensolchem Support sind 600 Euro sicher nicht zu viel.

Die Funktionen eines Shops kann man generell in folgende Gruppen unterteilen:

  • Produktkatalog: Der TYPOlight webShop erlaubt – wie oben beschrieben – Produkte mit Artikeln, wobei die Attribute, über welche sich die Artikel unterscheiden, frei definierbar sind (z.B. Grösse, Farbe, Material, Stromspannung). Produkte können wiederum in Kategorien und Unterkategorien gegliedert werden, wobei gewisse Kategorien auch für bestimmte Kundengruppen vorbehalten sein können (z.B. Club-Mitglieder). Artikel können als “Neu” oder als “Angebot” gekennzeichnet werden, und es sind Empfehlungen möglich (zu diesem Artikel passen Artikel X, Y und Z). Nebst den Standardpreisen sind auch Sonderpreise pro Artikel oder pro Kundengruppe möglich.
  • Gutscheine: Der TYPOlight webShop bietet ein ausgereiftes Gutschein-Modul. Gutscheine können einen prozentualen Rabatt oder einen Fixbetrag aufweisen. Sie können wahlweise limitiert (Zeitperiode, Anzahl Einlösungen) oder unbeschränkt zugelassen werden.
  • Versandkosten und Steuern: Sowohl Umsatzsteuern als auch Versandkosten sind oft von der Bestellung abhängig. Der TYPOlight webShop trägt diesem Umstand Rechnung, indem diese Kosten individuell pro Artikel und pro Land kalkuliert werden können. Die Versandkosten können sogar wahlweise nach Gewicht oder nach Preis festgelegt und mit Staffelpreisen versehen werden.
  • Zahlung: Der Verkauf gegen Rechnung, Nachnahme oder Lastschrift ist technisch trivial und natürlich auch beim TYPOlight webShop möglich. Spannender sind die Implementierung von Online-Zahlungsverfahren: Aktuell werden aber nur PayPal sowie sofortueberweisung.de unterstützt. Zwar steht auf der webShop-Website, dass sich beliebige Zahlungsmodule einbinden lassen – das ist dann aber ein Fall für einen Programmierer und nicht für einen CMS-Administrator.
  • Kundendaten: Für jeden Kunden wird ein Konto geführt, in dem nebst den Rechnungs- und Lieferadressen (auch mehrere) seine Bestellhistorie und der Status der laufenden Bestellungen einsehbar sind. Natürlich sind diese Daten über ein individuelles Login geschützt.

Fazit: Der TYPOlight webShop macht einen sehr guten ersten Eindruck. Die Funktionalität ist sehr praxisgerecht – nicht zu viel und nicht zu wenig. Die Präsentation unter www.typolight-webshop.de wirkt professionell und durchdacht. Das alles gilt zwar auch für andere Shops, aber hier kommt die nahtlose Integration in das CMS TYPOlight hinzu, und das scheint mir der eigentliche USP. Denn oft braucht man eben nicht eine Website oder einen Shop, sondern eine Website und einen Shop. Und so effizient wie mit TYPOlight plus webShop kann man das selten lösen.

Mir persönlich fehlt im Moment noch die Anbindung an weitere Payment Provider (insbesondere an das Schweizer Trio Saferpay, PostFinance E-Payment und Datatrans), und für einen grösseren Shop (viele Artikel, viele Kunden) hapert es im Moment noch mit den Import- und Exportfunktionen. Bedauerlich ist ferner, dass mehrsprachige Websites vom webShop nicht unterstützt werden. Ausserdem möchte ich nicht verschweigen, dass bei der Installation der Community Edition 2.0.0 auf meinem Testsystem einige erhebliche Probleme aufgetreten sind (wurden bereits an den Anbieter gemeldet und teilweise auch schon behoben). Insgesamt scheint mir aber der TYPOlight webShop eine der wichtigsten Extensions für TYPOlight seit langem. Wie die TYPOlight-Community darauf reagiert, kann man hier mitverfolgen.

P.S. Wer im TYPOlight-Forum nach “Shop” sucht, findet dort Ankündigungen von diversen anderen Shop-Extensions. Viel zu reden hat der Psishop gegeben; der Veröffentlichungstermin wurde aber immer wieder verschoben, und der Entwickler weist explizit darauf hin, dass die Extension derzeit nicht produktiv nutzbar ist (was ich aus eigener Erfahrung bestätigen kann). Dann gibt es eine weitere Ankündigung für eine Extension, die offenbar gemeinsame Wurzeln mit dem TYPOlight webShop von fruitMedia hat, die aber nicht ein vollwertiger Shop, sondern ein flexibles Bestellsystem werden soll. Unklar ist mir, wie es um den i7shop von Include7 steht, der in den Forumsbeiträgen als Minishop angekündigt wurde.

exttypolight: Aufgebohrtes Backend für TYPOlight

image

Es ist ziemlich verblüffend, was die Extension exttypolight im Backend von TYPOlight bewirkt: Das ganze Bedienungskonzept wird umgekrempelt, indem die bisherige linke Modulleiste durch einen Seitenbaum im Stil von TYPO3 ersetzt wird. Dies ermöglicht einen schnelleren Wechsel zwischen den verschiedenen Seiten, und auch die Trennung von Seitenstruktur und Seiteninhalt wird aufgehoben. Der Seitenbaum stellt ein gut bestücktes Kontextmenü zur Verfügung und bietet Drag & Drop beim Verschieben von Seiten und Elementen. Die Backend-Module aus der linken Spalte sind neu in einer Menüleiste mit Dropdown-Menüs am oberen Bildschirmrand angebracht.

Noch ohne einen Langzeittest durchgeführt zu haben würde ich sagen: exttypolight macht TYPOlight nicht unbedingt einfacher, aber für einen halbwegs geübten Benutzer auf jeden Fall effizienter. Der Name “Extended TYPOlight” ist somit durchaus gerechtfertigt. Das Design ist gefällig und sieht nicht zufällig sehr ähnlich aus wie bei OpenGoo: Auch hier kommt das JavaScript-Framework extJS zum Einsatz.

exttypolight kann man nur bedingt erklären, aber sehr leicht verstehen, wenn man es ausprobiert. Zugang zur Demo erhalten Sie mit dem Default-Login von TYPOlight (User = k.jones, Passwort = kevinjones).

(via Der Mediamatiker)

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

css.php