Einleitung
Die Extension content_slug wurde entwickelt für den Einsatz mit Fluid Styled Content. In Kombination mit dem Bootstrap Package war sie ebenfalls verwendbar, wobei in einer bestimmten Konstellation (siehe weiter unten) ein Problem auftreten konnte.
Mit der neuen Version soll es etwas einfacher werden, menschenlesbare Fragmente mit beliebigen Template-Lösungen, etwa auch mit Content Blocks, zu verwenden.
Gut zu wissen: lib.contentElement
lib.contentElement ist die Grundkonfiguration für Inhaltselemente seit der Einführung von Fluid Styled Content (TYPO3 v7). Dieser TypoScript-Identifier wird unter anderem auch vom neuen Camino-Theme (TYPO3 v14) sowie vom Bootstrap Package verwendet. Content Blocks (seit TYPO3 v13) basieren hingegen auf lib.contentBlock.
Die Extension content_slug erweitert lib.contentElement um eine Variable fragmentIdentifier für das menschenlesbare Fragment, die dann in Fluid-Templates für Inhaltselemente zur Verfügung steht.
Drei neue Site Sets
Die neue Version der Extension erleichtert jetzt die Verwendung mit Inhaltselement-Templates jenseits von Fluid Styled Content.
Es gibt drei Site Sets für verschiedene Anwendungsfälle:
- Speaking URL fragments (Basic configuration)
- Speaking URL fragments (for Fluid Styled Content)
- Speaking URL fragments (for Content Blocks)
Zur Verfügung stehen diese Konfigurationen auch als klassische TypoScript Sets (Include static).
Die Extension-Dokumentation enthält eine kompakte Übersicht über die drei Sets und ihren jeweils empfohlenen Einsatzzweck.
Nachfolgend gehe ich auf ein paar Hintergründe ein und erläutere, warum nur für Fluid Styled Content erweiterte Fluid-Templates mitgeliefert werden (können). Für andere Templates werden die notwendigen Anpassungen in der Dokumentation erläutert.
Fluid Styled Content (FSC)
Für diese Inhaltselement-Templates wurde die Extension damals entwickelt. Neben der Grundkonfiguration liefert EXT:content_slug auch angepasste, gebrauchsfertige Fluid-Templates für Header sowie die beiden “Section Index”-Menüs mit.
Empfohlenes Set: "Speaking URL fragments (for Fluid Styled Content)"
Content Blocks
Da Inhaltselemente auf Basis von Content Blocks von jedem individuell erstellt werden, gibt es keinerlei Standards bei der Template-Struktur.
Daher wird nur die Grundkonfiguration der Extension geladen und für lib.contentBlock referenziert.
Um die beiden Fragment-Felder in eigenen Content Blocks zu ergänzen, enthält die Extension jetzt das vordefinierte Basic (Mixin) ContentSlug/Header, das entweder direkt eingebunden oder als Vorlage verwendet werden kann.
Empfohlenes Set: "Speaking URL fragments (for Content Blocks)"
Bootstrap Package
Das Bootstrap Package sollte nicht gemeinsam mit Fluid Styled Content verwendet werden. Die Grundstruktur der Fluid-Templates für Inhaltselemente ist aber weitgehend identisch mit FSC. Das gilt auch für die Header-Partials: Im Bootstrap Package werden den Überschriften (Stand heute) nur zusätzliche Klassen zugewiesen.
Die menschenlesbaren Anker konnten im Bootstrap Package schon mit den vorherigen Versionen verwendet werden, mit einer Ausnahme: Wenn man Site Sets verwendete und in der TYPO3-Installation zusätzlich FSC (für eine andere Site) installiert war, hat das bisherige Site Set sebkln/content-slug FSC als Abhängigkeit mit geladen. Dessen TypoScript sorgte dann für Probleme beim Frontend-Rendering.
Da es sich beim Bootstrap Package um eine Third-Party-Extension handelt, deren Funktionsumfang sich jederzeit ändern kann, liefere ich keine fertigen Template-Overrides mit. Die benötigten Ergänzungen in Fluid können durch die Ähnlichkeit mit FSC aber einfach nachvollzogen werden.
Empfohlenes Set: "Speaking URL fragments (Basic configuration)"
Camino
Das neue Camino-Theme in TYPO3 v14 war der Anstoß, neue Site Sets in EXT:content_slug zu ergänzen. Dennoch habe ich mich schließlich aus zwei Gründen dagegen entschieden, Camino direkt zu unterstützen:
- Die Template-Struktur würde es erfordern, mindestens sechs Fluid-Templates zu überschreiben und dort die Variable {fragmentIdentifier} zu ergänzen
- Da das Camino-Theme keine “Section Index”-Menüs bereitstellt, beschränken sich Sprungmarken auf Link-Felder und den RTE
Die Extension enthält daher keine erweiterten Templates für Camino. Ihr könnt sie aber bei Bedarf selbst adaptieren.
Empfohlenes Set: "Speaking URL fragments (Basic configuration)"
Individuelle Template-Lösungen
Einige Entwickler und Agenturen arbeiten schon seit Jahren ganz ohne Fluid Styled Content und setzen nur maßgeschneiderte Inhaltselemente ein.
Wer hier nicht lib.contentElement als Grundlage für seine Inhaltselemente verwendet, muss diesen TypoScript-Identifier in der eigenen Konfiguration referenzieren.
Empfohlenes Set: "Speaking URL fragments (Basic configuration)"
Modernisierte Dokumentation
Die Extension-Dokumentation habe ich deutlich überarbeitet. Neben technisch notwendigen Anpassungen für das zwischenzeitlich veränderte Rendering auf docs.typo3.org habe ich viele Formulierungen angepasst und Inhalte anders strukturiert.
Request-Objekt in ModifyPageLinkConfigurationEvent
In den TYPO3-Versionen 13.4.33 und 14.3.5 wurde der aktuelle Request im ModifyPageLinkConfigurationEvent ergänzt. Dieses Event verwende ich im ModifyFragment Listener, um das Fragment in RTE-Links sowie TCA-Feldern vom Typ link zu ersetzen.
Daher kann ich das dafür notwendige TypoScript-Setup ab sofort direkt aus dem Request-Objekt auslesen. Außerdem habe ich die Prüfung erweitert, ob ein valider Frontend-Request stattfindet, bevor eine weitere Verarbeitung des Fragments stattfindet.
Dem ContentObjectRenderer wird der Request jetzt ebenfalls mit übergeben. Das soll eventuelle Probleme bei der Solr-Indizierung vermeiden, die ich selbst aber in keiner Installation nachstellen konnte.
Die oben genannten TYPO3-Versionen sind damit die neuen Mindestanforderungen. TYPO3 v12 wird von der Extension nicht länger unterstützt.