Springe zum Inhalt der Seite
zeroseven design studios
28.02.2021

TYPO3 Neue Blog-Erweiterung

Die neue Blog-Erweiterung z7_blog bringt einiges an Funktion und geht völlig neue Wege um eine noch nie dagewesene Flexibilität für TYPO3-Entwickler und Redakteure zu bieten:

Seitenbasierte Blog-Posts

Um die vielseitigen Möglichkeiten aus dem CMS TYPO3 voll ausschöpfen zu können, setzt die neue TYPO3 Extension auf das Seitenkonzept vom TYPO3 CMS. Alle Funktionalitäten eines modernen Internetauftritts, angefangen von Metadaten aus den Seiteneigenschaften, Canonicals, sprechenden URLs und Templates bis hin zu sämtlichen Content-Elementen und Plugins der Website, stehen somit auch für die Beiträge der zeroseven Blog-Erweiterung zur Verfügung, um Contents, Bilder und Videos wie gewohnt flexibel einsetzen zu können. Dadurch lässt sich der Blog nahtlos in die TYPO3-Website integrieren und über den TYPO3-Seitenbaum einfach und übersichtlich verwalten. Sowohl als integrierter Blog in der bestehenden Website, als auch als separate Instanz im TYPO3-System unterstützt die z7_blog die volle Leistung die TYPO3 und der jeweilige Internetauftritt bieten.

Kategorien im TYPO3-Seitenbaum

Als völlig neuartiges und innovatives Konzept der Extension präsentieren sich auch Kategorien in Form von TYPO3-Seiten. Diese stellen somit nicht mehr nur ein reines Filter-Kriterium dar, sondern können den User über thematische Einstiegsseiten durch den Blog führen. Zusätzlich lassen sich die Kategorien dadurch mühelos in einer Navigation integrieren.

Die Verwaltung von Blogartikeln im Backend kann dadurch intuitiv per Drag&Drop erfolgen – eben ganz so, wie man es von Seiten im TYPO3 CMS gewohnt ist.

Automatische Sortierung von Beiträgen im Seitenbaum

Damit die Seitenstruktur auch im Backend für den Redakteur übersichtlich und aufgeräumt bleibt, übernimmt die Extension z7_blog die Sortierreihenfolge von Blog-Einträgen im Seitenbaum ganz automatisch. Analog zum Frontend werden somit auch im Backend die neusten Posts an erster Stelle gezeigt.

Dadurch gelingt es dieser Extension die Vorteile seitenbasierter Erweiterungen mit denen von datensatzbasierten Erweiterungen zu kombinieren.

Der Blog unter der Haube

Modulare Zusatzerweiterungen

Die konzeptionelle Ausrichtung, die Erweiterung einfach und übersichtlich zu halten und gleichzeitig die Möglichkeit zu bieten diese durch sämtliche individuellen Features erweitern zu können, verlangt einen modularen Aufbau, wie es ihn in der TYPO3-Welt bislang noch nicht gab.

Im konkreten Beispiel wird eine Kommentarfunktion als separate "Suberweiterung" zur Verfügung gestellt, welche auch nur dann geladen werden muss, wenn die Website diese Funktion wirklich unterstützen soll. Über denselben Weg können weitere individuelle und projektspezifischen Anpassungen jederzeit eingeschoben werden, ohne dass die Fähigkeit für Updates der Blog-Extension darunter leidet.

Gleichzeitig werden Abhängigkeiten zu anderen Extensions vermieden und unnötige Datenbank-Felder, Tabellen, ViewHelper, Controller, Middlewares und vieles mehr reduziert, um die Webseite nicht unnötig aufzublähen sowie für eine gute Performance zu sorgen.

Um dieses Vorhaben gelingen zu lassen, wurde über den klassischen Weg des TYPO3 Extbase-Konzepts hinaus eine Möglichkeit entwickelt, zum Beispiel ein Extbase-Model nicht mehr länger nur um ein weiteres Model ergänzen zu können.
Über PHP-Traits ermöglicht es der z7_blog eine Klasse dynamisch um viele weitere Klassen zu erweitern, in dem Abhängigkeiten unterschiedlicher Erweiterungen zur Laufzeit generiert werden und vom Blog eingesammelt werden.

Somit lassen sich eigenständige Funktionen und Features wie Kommentare, Content-Rating, Notifications und vieles mehr über separate Extensions nahtlos im Blog integrieren.

Zentrale Verwaltung aller Anfragen

Anfragen aller Art für Posts, Tags, Kategorien und Autoren werden in der Blog-Erweiterung über zentrale "Demands" verwaltet. Diese Klassen verbinden den kompletten Weg aller Instanzen im MVC-Konstrukt von der Datenbank bis hin zum finalen Template.

Wird ein Demand über eine Subextension erweitert, werden gleichzeitig Bedingungen im Repository ergänzt und ViewHelper erhalten zusätzliche Parameter. Diese Umsetzung erlaubt es Entwicklern mit nur wenigen Zeilen Code komplette und voll automatisierte Filter-Vorgänge zu implementieren.

Interaktive und vordefinierte Filter

Um dem User an den richtigen Stellen die richtige Auswahl von Blog-Posts zu geben, können diese im Plugin vorgefiltert werden. Filterkriterien können dabei beliebig kombiniert werden, sodass beispielsweise alle nicht archivierten Posts eines gewählten Autors einer bestimmten Kategorie angezeigt werden. Ebenso stehen Tags über eine Autocomplete-Funktion wie auch die Markierung von "Top Posts" zu Verfügung.

Zusätzlich können zur vorgefilterten Auswahl auch interaktive Filter im Content der Seite integriert werden, welche es dem User im Frontend erlauben, die Auswahl der Posts zu beeinflussen.

Aktive Filter erhalten dabei automatisch ein data-attribute im HTML-Tag, welche es dem Entwickler der Seite erlauben aktive Filter ohne große Mühe zu stylen.

Kommentarfunktion

Die Kommentarfunktion der TYPO3 Blog Extension z7_blog bietet eine einfache Verwaltung über E-Mail-Benachrichtigungen, einem Dashboard-Widget oder direkt über den Blog-Post im Backend.

Eine automatische Spracherkennung der Kommentare erlaubt es, den Inhalt für Suchmaschinen wie Google und insbesondere für Accessibility-Features im HTML besonders auszuzeichnen. So können Kommentare sprachenunabhängig für alle Übersetzungen ausgegeben werden.

Die Steuerung, ob für einen Post Kommentare erlaubt sind oder nicht, lässt sich in den jeweiligen Blog-Posts im Backend einfach einstellen.

Die gesamte Kommentarfunktion im Blog wird als Subextension installiert.

Formulare mit TYPO3 form

Als Grundlage des Kommentar-Formulars dient die TYPO3-Core-Erweiterung „form“. Darüber lassen sich weitere Felder und Feld-Typen hinzufügen. Ein vordefiniertes Formular wird bereits mit der Erweiterung installiert.

Sofern die form-Extension im TYPO3-Projekt bereits verwendet wird, dürfte auch hier das bereits vorhandene Styling die Integration zusätzlich erleichtern.

Paginierung von Blog-Posts

Die Paginierung der Blog-Beiträge kann in jedem Plugin individuell definiert werden. Dabei kann die Anzahl von Blog-Artikeln pro Seite flexibel gesetzt werden. Bei der Definition von „8“ werden pro Seite acht Artikel dargestellt. Wird beispielsweise „5, 8, 12“ eingegeben, bedeutet dies, dass für die erste Seite fünf, für die zweite Seite acht und für alle weiteren Seiten zwölf Artikel pro Seite ausgegeben werden.

Da der Blog mit unterschiedlichen Layouts ausgestattet werden kann, können diese mit der flexiblen Paginierung über alle Seiten hinweg individuell gestaltet werden.

In der Standard-Konfiguration des Blogs werden die Seiten per Ajax-Request geladen. Das bedeutet, dass bei der Paginierung nicht eine komplette Seite, sondern lediglich weitere Artikel nachgeladen werden, was die Ladezeit um ein Vielfaches verkürzt.

RSS-Feed ganz ohne Konfiguration

Wo bei den meisten Erweiterungen für einen RSS-Feed typoscript-Kenntnisse erforderlich sind und jede Menge Konfiguration hinterlegt werden muss, macht es der TYPO3 Blog denkbar einfach.

Wurde auf einer Seite eine Liste von Blog-Artikeln hinterlegt, kann an die URL der Seite einfach ein "/rss.xml" angehängt werden und fertig. Der RSS-Feed enthält alle Filter-Einstellungen des Plugins.

Alles was dazu nötig ist, ist die Installation der RSS-Funktion als Subextension.

Zum Abschluss

Wer seinen TYPO3-Auftritt um einem Blog erweitern möchte, sollte sich die z7_blog auf jeden Fall ansehen. Im Vergleich zu anderen Blog-Erweiterungen verspricht diese Erweiterung viel Flexibilität und eine hohe Performance. Sie bietet einen ordentlichen Umfang zum bloggen und lässt sich dank dem modularen Konzept sehr gut erweitern.

Kostenlos erhältlich überall wo es TYPO3-Extensions gibt:

TYPO3 Solutions

Mehr als 20 Jahre TYPO3 Erfahrung. Das unterscheidet uns.

Unsere Expertise im Bereich TYPO3 Entwicklung sowie die hohe Skalierbarkeit des Content Management Systems TYPO3 sind die ideale Grundlage für ein erfolgreiches Internet-Projekt und die digitale Zukunft Ihres Unternehmens.

Raphael Thanner TYPO3 Senior Entwickler
Springe an den Anfang der Seite