Frontend User Editing mit TYPO3

Die Aufgabe erscheint denkbar einfach: Auf der Einstiegsseite einer Intranetlösung auf Basis von TYPO3 4.2.6 sollen die Benutzer in Form eines Blogs über Neuigkeiten informiert werden. Dabei ist es erwünscht, dass sich alle Benutzer aktiv an der Erschaffung der Informationen beteiligen. Unerwünscht ist es im Gegensatz dazu, alle Mitarbeiter der Unternehmens in der redaktionellen Arbeit mit TYPO3 zu schulen. Das kostet nicht nur eine Menge Zeit und Geld sondern ist in der Regeln auch ein hoffnungsloses Unterfangen. Die Lösung lautet Frontend Editing. Denkste!

Weil oft verwendet und im Schlaf konfigurierbar kam als erster der Gedanke, tt_news mit einer Erweiterung für das Frontend Editing zu verwenden, auf. Die Suche im TER nach einer bereits vorhandenen Lösung brachte schnell zwei mögliche Kandidaten ans Tageslicht:

Die Beschreibung von sg_newsplus las sich zunächst vielversprechend. Ein nettes Set an Features sollte genau unseren Ansprüchen genügen. Bei der Installation machte sich jedoch schnell Argwohn bemerkbar, der der Extension Manager wollte die Tabellen tt_news und tt_news_cat in der Datenbank anlegen. Sind diese Tabellen nicht bereits tt_news vorbehalten? Ja, natürlich. tt_news war zu diesem Zeitpunkt noch nicht installiert, also wäre es schön gewesen, sg_newsplus hätte wärend der Installation einen Abhängigkeitsfehler mit tt_news gemeldet.

Egal, was soll schon schief gehen? Die Antwort wurde und promt rot auf weiß geliefert, nachdem im zweiten Schritt dann tt_news installiert wurde. Reihenweise MySQL-Fehler erschienen auf dem Bildschirm. „Supplied argument is not a valid MySQL result…“ Wie sich herausstellte, wurde einfach mal vergessen, das Feld ‚uid‘ in der Tabelle tt_news anzulegen. Im Ergebnis konnten die Datensätze natürlich nicht verarbeitet werden, denn als Handle für den Datenbankzugriff wird nun einmal die UID verwendet. Nun ja, als TYPO3-Profi lässt man sich von den unnötigsten Fehlern irgendwann nicht mehr aus der Ruhe bringen. Bis zu letzt optimistisch wurden die Erweiterungen eingerichtet und konfiguriert, um endlich über das Frontend Nachrichten schreiben zu können.

Die Oberfläche von sg_newsplus gestaltete sich dann etwas fad, unscheinbar grau auf dem Weiß des Website-Backgrounds. Die Suche nach den Nachrichten der eingeloggten FE-Users funktionierte schon mal. Die vorher im Backend angelegten Datensätze wurden gefunden und über den Titel referenziert zum Bearbeiten angeboten. Ein kurzer Check des Suchformulars zeigte allerdings, dass die Umsetzung nicht ganz ausgereift ist, denn die durch das Formular angebotenen Funktionen reagierten nur sporadisch. Immerhin konnten wir unsere Nachrichten finden.

Endgültig Schluss war dann nach dem Klick auf den Link zum Bearbeiten. Nachdem die sg_newsplus soeben noch alle Nachrichten schön brav finden konnte, brangte nun die Meldung „Unknown column ‚tt_news.1‘ in ‚where clause‘.“ auf dem Bildschirm, der mit dieser Behauptung durchaus Recht hatte. Ab diesem Zeitpunkt war uns dann auch die Lust vergangen, dieses Stück Quark mit unserer Zeit zu beehren und unsere Aufmerksamkeit wandt sich der Alternative fe_rtenews zu.

fe_rtenews war unsere zweite Wahl, weil die Erweiterung mit weniger Features daher kommt. (Immhin wird gleich ein Falsh-Player mitgeliefert.) Dafür ist sie aber sehr einfach in Betrieb zu nehmen. Importieren, aktivieren, 4 Zeilen TypoScript kopieren und anpassen, fertig. Zwar stimmen die Angaben in der TypoScript-Referenz der Erweiterung nicht, aber auf die richtige Zuweisung der Paramter kommt man schnell selber. Das Plugin muss dann nur noch als Content Element eingebunden werden und es kann los gehen. fe_rtenews erkennt zunächst schon einmal automatisch, welcher Frontend-User eingeloggt ist und setzt diesen als Autor ein. Also kann man einfach loslegen und eine Nachricht schreiben.

Netter Weise wurde auch an eine Vorschaufunktion gedacht. Betätigt man den entsprechenden Button, zeigt die Erweiterung die Nachricht unter Verwendung des (X)HTML-Templates von tt_news an. Das ist im Übrigen ein krasser Gegensatz zu sg_newsplus, welche mit eigenen Templates geliefert wird und auch noch ungefragt wesentliche Bestandteile der Konfiguration von tt_news überschreibt; unter Anderem die Auswahl der templeFiles. *grrr*

Doch zurück zu fe_rtenews. Die Vorschau hat (natürlich) nicht das Ergebnis geliefert, dass uns durch die Beschreibung der Erweiterung versprochen wurde. Zwar wurde die soeben verfasst Nachricht in der Vorschau angezeigt, aber etwaige Textformatierungen waren verschwunden. Nein, nicht die als fett oder kursiv ausgezeichneten Passagen waren betroffen, sondern das Gefüge an Absätzen, die sich in unserer Nachricht tummeln sollten. Ohne Punkt und Komma wurde der gesammte Text in einem einzigen Absatz dargestellt.

Lange Recherche kurzer Sinn: Die Ursache für dieses Phänomen liegt nicht in der Erweiterung begründet sondern in TYPO3 selber. An dieser Stelle zeigt sich mit Bravour die Diskepanz zwischen den global verfügbaren Features von TYPO3 in Front- und Backend. An dieser Stelle wurde nämlich einmal mehr eine Ausnahme in der Verarbeitung von Eingaben gemacht. Eingaben aus dem Frontend werden durch mehrere Funktionen geparst, die im Backend nicht zum Zuge kommen. Ergo kommt auch die Konfiguration des RichText Editors anders zum Tragen, als gedacht. Die mühsam zusammengetragenen und durchdachten  Konfigurationsanweisungen für den RTE des Backends einfach für das Frontend zu übernehmen, wäre auch viel zu einfach. TYPO3 entfernt einfach bestimmte HTML-Tags aus RTE-Eingaben über das Frontend. Damit soll per se die Sicherheit des Systems erhöht werden. Den Administratoren wird damit das Leben allerdings unnötig schwer gemacht, denn ohne eigene Konstrukte oder Eingriffe in den Quelltext lässt sich dieses Verhalten nicht ohne Weiteres Abschalten. (Siehe auch „Sanitizing FE input in TYPO3“) Schade, weil überflüssig. Die Konfigurationsmöglichkeiten der RTE lassen dem Admin nämlich alle Freiheiten, selber zu entscheiden, in welchem Anwednungsfall welche Sicherheitsvorkehrungen getroffen werden sollen und welche nicht.

Wir würden uns wirklich wünschen, dass die Prioritäten der Entwickler in den letzten Monaten anderweitig fokussiert wären, als es sich aktuell darstellt. Potentielle Gefahren der Sessionfixation wurden beseitigt. Im Ergebnis sind auf Sessions basierende Funktionen, die ohne die Verwendung von Cookies und einen Login auskommen müssen, nicht mehr einsetzbar. Es sei denn, macht eben jenen Fix wieder rückgängig. Möchte man sich eigene Hacks im Core ersparen, muss man eine ältere TYPO3-Version manuell patchen, weil sonst das Adminpasswort nahezu offen im WWW herumgeistert. Stichwort juHash …

Wärend unserer Recherchen sind wir aber auch auf erfreuliche Dinge gestoßen, wenn auch eher zufällig. Die snowflake productions gmbh hat erst vor ca. einem Monat eine neue Blog-Erweiterung zur Verfügung gestellt. T3Blog ist das Schmuckstück getauft und sehr erfreulich ist, dass die Jungs sich ordentlich Gedanken gemacht haben, um eine sauber realisierte und gut strukturierte Erweiterung zu erschaffen. Mit dem initial Release beherrscht das t3blog bereit einen eigenen Widget-Mechanismus, durch den sich die Erweiterung nach belieben um eigene Funktionen erweitern lässt. Der besondere Clou ist, dass sich diese Widgets auf der gesamten TYPO3-Webseite verwenden lassen, nicht auf der Seite des Blogs. Der Löwenanteil der einzelnen Funktionen wird darüber hinaus durch TypoScript bereitgestellt. Dadurch kann die Erweiterung einfach den eigenen Vorlieben angepasst werden, ohne dass man eine eigene Lösung auf Basis von PHP bräuchte. Unser Kompliment! Das t3blog werden wir im Hinterkopf behalten und die Entwicklung weiter verfolgen! Schade, dass die Erweiterung (noch) nicht mit der Möglichkeit des Frontend Editings ausgeliefert wird … 😉

Naja, ich geh dann mal wieder was schaffen, wie der Schwabe sagt.

Cu ‚round

Tags: ,

3 Kommentare zu “Frontend User Editing mit TYPO3”

  1. DeBugger

    Hallo,

    toller Artikel, wo gibt es denn die Extension fe_rtenews, wenn ich auf den Link klicke wird nichts gefunden?!

    Grüße DeBugger

  2. xmachina Typo3-Tea,

    @DeBugger: fe_rtenews hat eine schwere Sicherheitslücke und ist, bis diese Fehler behoben sind, nicht mehr im Repository verfügbar!

  3. Jan Loderhose

    Danke für den Hinweis! Habe den Artikel mit einen entsprechenden Zusatz aktualisiert.

Einen Kommentar schreiben

Sie müssen angemeldet sein, um kommentieren zu können.