27 September 2017

Typo3 7.x+: Typo3-Link-Tags auch in HTML-Content-Elementen von fluid_styled_content

Früher (Typo3 bis 6.x) bzw. mit css_styled_content konnte man auf folgende Weise TypoLinks wie <link 1 - - "Linktitel">Linktext</link> auch in HTML-Elementen parsen:

tt_content.html.parseFunc.tags.link < lib.parseFunc.tags.link

Da man ab Typo3 7.x auch fluid_styled_content nutzen kann (und meiner Meinung nach auch sollte), funktioniert der Typoscript-Codeschnipsel nicht mehr. Um diese Funktionalität wiederherzustellen, müsst ihr folgendes machen (Vielen Dank auch
an Georg Ringer für seinen Input, der mich überhaupt erst darauf gebracht hat).
Zunächst müsst ihr das Template für das HTML-Element von fluid_styled_content (typo3/sysext/fluid_styled_content/Resources/Private/Templates/Html.html) überschreiben. 


Weitere Informationen zum Überschreiben von Standard-Templates findet ihr hier: https://docs.typo3.org/typo3cms/extensions/fluid_styled_content/7.6/Configuration/OverridingFluidTemplates/Index.html


Anschließend könnt ihr den vorhanden Code-Schnipsel ändern:



Vorher: 

<f:format.raw>{data.bodytext}</f:format.raw>


Nachher:

<f:format.htmlentitiesDecode>
    <f:format.html parseFuncTSPath="lib.parseFunc">
        {data.bodytext}
    </f:format.html>

</f:format.htmlentitiesDecode>


Erläuterung:

f:format.html parseFuncTSPath="lib.parseFunc" sorgt dafür, dass der HTML-Inhalt geparsed wird und die <link>-Tags durch entsprechende HTML-Tags ersetzt werden. 

f:format.htmlentitiesDecode wird im nächsten Schritt die HTML-Entitäten korrekt in sauberen HTML-Code umwandeln, damit diese auch vom Browser korrekt interpretiert werden. 


Et voilà!


-------------

Update am 31.05.2019:

Ab Typo3 8.x funktionieren zwar die <link>-Tags immer noch, aber es wurde ein neues System eingeführt. Siehe Link: https://docs.typo3.org/m/typo3/reference-typoscript/8.7/en-us/Functions/Typolink/Index.html#resource-references


D.h. dass die Verlinkungen nun so aufgebaut sind: 


<a href="t3://page?uid=1" title="startseite"></a> 


anstatt 


<link 1 - - "startseite"></link>



Von Haus aus ist der CKE so eingestellt, dass er diese a-Tags problemlos übernimmt. Wenn ihr weiterhin die klassischen link-Tags nutzen wollt/müsst, dann müsst ihr die Konfiguration vom CKE anpassen, damit dieser auch link-Tags akzeptiert. 
---------
Update am 08.09.2021
Ab TYPO3 8 hat sich glaube ich auch die Syntax verändert, mit der man die Templates überschreibt. Diese müsst ihr anpassen. Hier ein Beispiel (mit Beispielpfaden)

Vorher (TYPO3 7):
lib.fluidContent.partialRootPaths.200 = fileadmin/templates/fluid_styled_content/Resources/Private/Partials/
lib.fluidContent.templateRootPaths.200 = fileadmin/templates/fluid_styled_content/Resources/Private/Templates/
lib.fluidContent.layoutRootPaths.200 = fileadmin/templates/fluid_styled_content/Resources/Private/Layouts/

Nachher (TYPO3 8+, Veränderung fett markiert)
lib.contentElement.partialRootPaths.200 = fileadmin/templates/fluid_styled_content/Resources/Private/Partials/
lib.contentElement.templateRootPaths.200 = fileadmin/templates/fluid_styled_content/Resources/Private/Templates/
lib.contentElement.layoutRootPaths.200 = fileadmin/templates/fluid_styled_content/Resources/Private/Layouts/