In TYPO3 werden standardmäßig vor sämtliche Inhaltselemente Anker-Links platziert, um diese Blöcke direkt verlinken zu können. Diese setzen sich zusammen aus einem a-Tag mit id, bestehend aus einem "c" und der UID des Content Elements, zum Beispiel <a id="c12345"></a>. Verlinkt werden würde auf diesen mit #c12345. Da diese Anker allerdings nicht sehr aussagekräftig sind, generiere ich mit Typoscript sprechende Anker-Links. Die Benutzer wird es freuen, und das ohne zusätzliche Extensions zu installieren.
Ich benutze hierzu die Überschrift des Content Elements als Anker-Link. Da ein Anker allerdings keine Leerzeichen enthalten darf, durchläuft mein sprechender Anker 2 Funktionen des stdWrap, um "verbotene" Zeichen zu entfernen. Das Ergebnis der Anker entspricht in etwa dem von RealURL für sprechende URLs.
Sollten für ein Inhaltselement keine Anker gewünscht sein, muss in den Eigenschaften des Elements nur das Feld sectionIndex (im deutschen Backend: "In Menüs zeigen") deaktiviert werden. Dies ist standardmäßig aktiviert.
Hierzu muss im Setup-Bereich des Templates folgendes Typoscript eingefügt werden: (getestet in TYPO3 4.7)
tt_content.stdWrap {
# alte prepend-Funktion von CSS Styled Content löschen
prepend >
prepend = COA
prepend.stdWrap {
# Vor Content-Block einen Anker einfügen
wrap = < a id="c- | "></a>
# Anker aber nur setzen, wenn der Content-Block mit Anker umschlossen werden soll
if.isTrue.field = sectionIndex
}
prepend.10 = TEXT
prepend.10 {
field = header
case = lower
replacement {
# Mit Regex alle Leerzeichen durch Bindestriche ersetzen
10 {
search = / /
useRegExp = 1
replace = -
}
# Mit Regex alle unerlaubten Zeichen entfernen
20 {
search = /[^a-zA-Z0-9-]/
useRegExp = 1
replace =
}
}
# Anker aber nur setzen, wenn der Content-Block mit Anker umschlossen werden soll
if.isTrue.field = sectionIndex
}
}
Als Ergebnis würde ein Anker-Link, welcher vorher zum Beispiel <a id="c12345"></a> hieß, nun als <a id="news-anzeigen"></a> angezeigt werden. Verlinkt werden kann auf diesen, in dem man #news-anzeigen an eine URL anhängt oder direkt in einem Link angibt.
Man sollte nun allerdings drauf achten, die Überschrift des Content Elements nicht mehr zu ändern, da ansonsten die Anker auch umbenannt werden und alte Anker-Links auf der Seite nicht mehr funktionieren würden.
Vielleicht geht das ja irgendwann mit diesem Feature https://forge.typo3.org/issues/17406 ;-)