TYPO3Camp Vienna 2016

TYPO3Camps sind immer beliebter geworden und wachsen seit ein paar Jahren über die deutschen Grenzen hinaus. Vom 6. bis 8. Mai nahmen wir am ersten internationalen TYPO3Camp in Wien teil und sind, wie viele andere Teilnehmer auch, sehr begeistert, wie gut dieses Camp von Anfang an durchorganisiert wurde. Wir von jweiland.net haben dieses Camp als Premiumsponsor unterstützt.

TYPO3camp Wien 2016

In einer Stadt mit einer Geschichte wie Wien musste natürlich auch der Ort, an dem das Event veranstaltet wurde, ein historischer sein. Und auf die Universität Wien, eine der ältesten Universitäten Europas, trifft das sicher zu.

Wie viele andere imposante Gebäude in Wien konnte auch die Universität mit Meter hohen Wänden, grünem Innenhof, ausgeschmückten Deckenkuppeln und ihrer Lage in Stadtnähe ordentlich punkten. Ja, der Vergleich zum Stuttgarter TYPO3Camp in der Uni Hohenheim kam immer wieder auf. Entsteht da etwa ein Battle?

Auch wenn der größte Teil der Teilnehmer deutschsprachig war, wurde das Thema "International" ernst genommen und sämtliche Sessions in englischer Sprache gehalten. Auch die Flurgespräche wurden sofort und ohne Murren in Anwesenheit unserer internationalen Freunde auf englisch gehalten.

Das Camp begann am Samstag mit der Begrüßung und der anschließenden Keynote von Mathias Schreiber über die Zukunft von TYPO3.

An den folgenden Sessions konnten wir teilnehmen.

Einführung Doctrine (Morton Jonuschat)

Dbal als Abstraktionsschicht hat ausgedient. Natürlich ist man Stolz auf das, was man da vor Jahren selbst aufgebaut hat, aber der Quellcode ist in die Jahre gekommen und es gibt nur noch 2 Core-Entwickler, die sich mit der Struktur auskennen. Es wurde Zeit, allerhöchste Zeit, dass dieses System ausgewechselt wird. Doctrine hat sich bereits in vielen anderen Systemen, wie zum Beispiel Symfony, bewährt und somit den Einzug in das TYPO3-System gefunden. Morton hat dann noch aufgezeigt, wie die alten Datenbankmethoden, die immer noch funktionieren, durch die neuen Methoden zu ersetzen sind.

t3monitoring (Georg Ringer)

Als weitere Möglichkeit der automatisierten Überwachung von TYPO3-Installationen hat Georg seine neue Server-Client-Lösung t3monitoring vorgestellt, mit der unsichere TYPO3-Cores und unsichere Extensions aufgedeckt werden können. Dank Bootstrap sieht das Server-Backendmodul sehr aufgeräumt aus und lässt sich flink und intuitiv bedienen. Mit Filtern und weiteren Detailansichten können immer mehr Informationen zu Sicherheitsproblemen und Extensionupdates aufgedeckt werden. Die Extensions (Server und Client) liegen zwar öffentlich auf Github, aber der Extensionentwickler appelliert an das gute Gewissen seine Arbeiten nach einer vorgestellten Preisstaffelung entsprechend zu honorieren.

Ajax-Handling (Markus Klein)

Hier ging es nicht einfach darum, die Datenbank abzufragen und irgendwas zurück zu liefern, sondern darum, wie man Extbase mit Hilfe des Standaloneviews einen Inhalt rendern lassen kann, um diesen dann mittels der JSON-View an die Webseite wieder zurück zu liefern.

Helmut Hummel hat dann in den letzten Minuten übernommen und seine Extension typoscript_rendering vorgestellt. Mittels mitgeliefertem ViewHelper können spezielle URIs generiert werden, die zwar langsamer als eID-Scripte, aber immerhin schneller als die üblichen Ajaxcalls auf Basis von Pagetype sind. Der Vorteil an seinem genutzten Hook (checkDataSubmission): Es ist alles fertig initialisiert (TypoScript, Page, Frontend Users u.s.w.). Nur das Rendering der Seiteninhalte selbst wurde noch nicht durchgeführt. Durch bestimmte GET-Parameter kann nun selbst bestimmt werden, was gerendert werden soll: Ein bestimmter Seiteninhalt, ein Plugin oder auch ein TypoScript-Objektpfad.

TYPO3 Backstage Development (Oliver Hader)

Das TYPO3 Coreteam hat ein paar Konzepte entwickelt und auch ein paar bereits vorhandene Konzepte aufgegriffen, um das Arbeiten mit TYPO3 effektiver zu machen. Oliver stellte 3 davon vor.

Backend Apps

Der Redakteur soll nicht mehr von allen möglichen Datensatztypen im Listmodul erschlagen werden. Den Entwicklern soll die Arbeit mit Modulen vereinfacht werden, damit für den Redakteur pro Extension oder auch Anwendungsfall individuelle Module entstehen können. So würden z.B. Veranstaltungen, News und Adressen individuelle Backend Module erhalten. Kurz: Was zusammen gehört, bleibt zusammen.

JobQueue

Es gibt immer wieder Aufgaben, die länger als die max_execution_time benötigen. Selbst auf der Shell kann es je nach Provider zu bestimmten Timeouts kommen. Hier will der Core ein System entwickeln, dass Aufgaben in kleinere Teile aufsplitten kann. Somit würde eine Aufgabe nicht mehr abgebrochen, sondern mit dem nächsten Zyklus weiter ausgeführt werden.

EventSourcing

Derzeit ist die Datensatzhistorie von TYPO3 fest mit der sys_log-Tabelle verknüpft. Wenn die Tabelle sys_log geleert wird oder mittels Scheduler alte Einträge gelöscht werden, dann ist auch die Historie aus diesem Zeitraum nicht mehr verwendbar. Hier soll EventSourcing Abhilfe schaffen. Eine Tabelle loggt jeden neuen Datensatz und auch seine späteren Veränderungen. In Summe aller Protokolleinträge eines Datensatzes kann somit der Originaldatensatz wieder hergestellt werden.

FormEngine (Markus Klein)

Seit TYPO3 7.5 werkelt unter der Haube eine neue FormEngine. Sämtliche früheren Hooks sind passé und wurden durch die neuen Möglichkeiten mittels renderType und NodeResolver ersetzt. Markus hat über die NodyRegistry eine neue Renderklasse registriert, die eine GoogleKarte anzeigen lassen kann. Mit Hilfe der Option renderType kann nun diese neue Renderklasse angegeben werden, womit nun das Standartrendering überschrieben wird. Statt eines Eingabefeldes für die Latitude erscheint nun die Googlekarte. Noch etwas JavaScript und schon können mit beweglichem Googlemarker Latitude und Longitude sehr einfach bearbeitet werden.

XSS in Fluid ViewHelper (Helmut Hummel)

Helmut Hummel hat uns in einer Frage-Antwort-Session aufgezeigt, dass es einen sehr großen Unterschied macht, ob wir Fluidvariablen über renderChildren() oder als Parameter an unsere Fluid ViewHelper übergeben. Nur im Falle von renderChildren() werden Fluidvariablen escaped. Gerade in Bezug auf Linkgenerierung ein nicht zu vernachlässigender Sicherheitsaspekt.

Extension Mask

Gernot Ploiner stellte Version 2 der Extension Mask vor. Mask kann man sich als eine Art Assistenten vorstellen, mit dem sich sehr einfach neue Typen von Inhaltselementen erstellen lassen. Dabei werden nur Core-Funktionen genutzt, die erstellen Inhaltselemente nutzen für das Rendering dann auch Fluid. Version 2 bringt einige neue Feldtypen mit, auch lassen sich neu erstellte Felder sehr viel feiner konfigurieren. Die neue Version sollte in Kürze im TER zur Verfügung stehen.

TYPO3 for Beginners

Jo Hasenau stellte hier kurz vor, welche Möglichkeiten es für Einsteiger im TYPO3-Universum gibt, Informationen und Dokumentationen zu finden, sowie mit der Community in Kontakt zu treten.

Extension cart

Der eine oder andere kennt vielleicht noch die Extension wt_cart. Die neue Extension cart kann als direkter Nachfolger angesehen werden, wurde allerdings neu programmiert. Deshalb auch ein anderer Extension-Key, denn ein direktes Update von wt_cart auf cart ist nicht möglich. Zuviel hat sich unter der Haube geändert.

Mit cart lassen sich kleine Shops betreiben, die zum Beispiel nur wenige Produkte haben und für die deshalb größere Shop-Lösungen wie tt_products, commerce oder sogar Magento überdimensioniert werden. Es lassen sich entweder direkt Produkte anlegen oder sogar einfach normale Inhaltselemente als Produkte verwenden. Die Extension befindet sich momentan noch in der "Open Beta"-Phase und steht noch nicht im TER zur Verfügung. In den Slides ist der Link zum Github-Repository zu finden.

Sitepackages

Schon seit TYPO3 3.x gibt es die Möglichkeit, Templates als eigene Extension auszulagern. HTML-Templates, TypoScript- und TSconfig-Dateien werden so aus der Datenbank ferngehalten und gekapselt in einer eigenen Template-Extension zusammengefasst. Benjamin Kott zeigte hier, wie er seine Sitepackages aufbaut und welche Vorteile es gegenüber der "alten Methode", alles unterhalb von fileadmin/ zu lagern, gibt.

Skill Display

Seit kurzem gibt es neben der Zertifizierung zum "TYPO3 Certified Integrator"  auch den "TYPO3 Certified Editor", der "TYPO3 Certified Developer" wird bald folgen. Eine Möglichkeit, sich auf diese Prüfungen vorzubereiten, bietet die Plattform Skill Display. Ausserdem ist hier der Stand des eigenen Lernfortschrittes sichtbar. Nicht nur hilfreich für den Lernenden selbst, sondern auch eine gute Informationsquelle für potentielle Arbeitgeber.

T3Store

Es gibt tausende von TYPO3-Extensions für alle möglichen Anwendungsfälle. Dabei den Überblick zu bekommen und zu behalten, fällt vor allem Einsteigern schwer. Das Projekt T3Store von Gernot Ploiner und seinem Team geht hier einen anderen Weg als das klassische TER. Extensions werden in bestimmte Kategorien eingeordnet, so findet man leichter das gesuchte. Extensions lassen sich von registrierten Usern auch bewerten und kommentieren. Das Projekt befindet sich noch in einer frühen Entwicklungsphase.

Interessanterweise wird parallel an einer neuen Version des TER gearbeitet, die ähnliche Features bringen wird. Vielleicht ist hier eine für alle Seiten gewinnbringende Kooperation möglich?

Unsere Sessions

Zwei Sessions wurden von Jochen Weiland gehalten: "Introduction to the scheduler" und "Using SOLR in TYPO3".

Der gesamte Sessionplan wurde übrigens über Trello organisiert und ist dort auch noch zu finden.

Unser Fazit

Obwohl das Camp zum ersten Mal in Wien statt fand, war alles sehr gut organisiert. Auch die Wege zwischen den Veranstaltungsorten (Warm Up-Party, Camp, Social Event) waren angenehm kurz und gut zu Fuß zu bewerkstelligen. Die Universität als Austragungsort war sehr beeindruckend, das historische Ambiente passte hervorragend. 

Alles in allem: das Camp machte sehr viel Spaß, brachte sehr viel Informationen rüber und war sehr gut organisiert. Wir freuen uns auf das zweite TYPO3camp in Wien 2017!