Ein Site Package umfasst alles, was für die Ausgabe und Konfiguration einer Website mit TYPO3 erforderlich ist. Ich setze bei meiner Vorlage auf möglichst viele Best Practices. Dabei habe ich natürlich immer ein Auge auf Projekte wie das bootstrap_package von Benjamin Kott, lasse aber auch meine eigenen Erfahrungen einfließen. Ich versuche, zwischen schlanker Konfiguration und sinnvollen Funktionen abzuwägen. Meine Template-Extension setzt dabei keinerlei Frontend-Framework voraus. Es ist komplett euch überlassen, wie eure Templates aussehen sollen.
Das Ergebnis ist nun als basetemplate9 auf GitHub verfügbar.
Unter anderem habe ich die neue, vereinfachte Import-Syntax für TypoScripts verwendet. Einige Konfigurationen habe ich komplett entfernt – die Einrichtung der Frontend-Sprachen erfolgt in TYPO3 v9 im neuen Backend-Modul "Site Configuration". Da der neue TYPO3-Kern eine praktische SEO-Extension mitbringt, habe ich auch Meta-Tags entsprechend angepasst.
BackendLayouts:
Bislang hatte ich nur ein einfaches Beispiel-Layout mitgeliefert. Nun stehen fünf BackendLayouts sowie passende Fluid-Templates für das Frontend bereit, die ihr an eure Bedürfnisse anpassen könnt:
- 1-spaltig
- 2-spaltig (50/50)
- 2-spaltig (66/33)
- 2-spaltig (33/66)
- 3-spaltig
Die mehrspaltigen Layouts besitzen jeweils noch eine Inhaltsspalte ober- und unterhalb über volle Breite. So sind sie variabler einsetzbar.
Alle BackendLayouts sind in einzelnen Dateien gespeichert, so dass sie sich schnell zwischen Projekten austauschen und ergänzen lassen.
Für Demo-Zwecke im Frontend liefere ich ein einfaches Stylesheet mit – auch das soll natürlich durch eures ausgetauscht werden.
Inhaltsausgabe in Fluid-Templates:
Vom bootstrap_package habe ich mir die dynamicContent-Funktion entliehen. Dadurch lassen sich die verschiedenen Spalten der BackendLayouts sehr einfach ausgeben und müssen nicht mehr als Fluid-Variablen angelegt werden.
Optional lassen sich damit auch Wraps zu einzelnen Ausgaben hinzufügen oder Inhalte einer bestimmten Unterseite laden.
Seitentitel:
Auf Grundlage der neuen SEO-Extension habe ich mir das <title> Element vorkonfiguriert:
- Der Seitentitel setzt sich standardmäßig aus dem Titel der Unterseite sowie dem Website-Namen (aus einer TypoScript-Konstante) zusammen.
- Falls ein alternativer SEO-Titel für eine Seite vom Redakteur vergeben wurde, entfällt der automatische Website-Name. Auf diese Weise ist man flexibler bei der Suchmaschinenoptimierung.
- Die Konfiguration umfasst auch die populäre News-Extension, die ein eigenes Feld für einen alternativen Titel bereithält.
Wie alle Konfigurationen ist auch dieses Verhalten nicht in Stein gemeißelt. Benötigt ihr eine andere Arbeitsweise, könnt ihr dies einfach anpassen.
Sobald der Sitetitle (Website-Name) in TYPO3 nicht mehr nur über das sys_template, sondern auch über die neue Site Configuration gesetzt (und angepasst) werden kann (Issue auf Forge), werde ich diesen anstatt der eigenen TypoScript-Konstante verwenden.
Weitere Features
Alle Page TSconfig-Einstellungen lassen sich in den Seiteneigenschaften optional laden. Auf diese Weise könnt ihr selbst entscheiden, in welchem Teil des Seitenbaums ihr z.B. die BackendLayouts bereitstellen wollt. Wenn ihr eine TYPO3-Installation mit mehreren Websites besitzt, kommt ihr euch so auch nicht mit widersprüchlichen Konfigurationen selbst in die Quere.
Der Richtext-Editor CKEditor ist schon vorkonfiguriert und ergänzt die Tabellen-Gestaltung von fluid_styled_content. Das mitgelieferte wordcount-Plugin zeigt die Anzahl der Absätze, Wörter und Zeichen im Textfeld an. Wenn ihr die rte_ckeditor.css um die typografischen Deklarationen eures Stylesheets ergänzt, ist die Ausgabe im Editor identisch mit dem Frontend.
Alle Labels fürs Backend sind bereits zweisprachig in Deutsch und Englisch vorhanden.
Backport für TYPO3 v8
Soweit es möglich war, habe ich die Änderungen auch für das bestehende basetemplate8 übernommen. Falls ihr ein neues Projekt mit TYPO3 8.7 beginnt, solltet ihr dieses Starter Kit verwenden.