TYPO3 Fluid: Typolink mit Target / Class / AdditionalParams / Title aus Flexform/TCA-Config im Fluid-View rendern

Seit der Einführung von Extbase in TYPO3 CMS 4.5 und Fluid (Template-Engine), besteht die Möglichkeit über den Fluid-ViewHelper "f:link.page" und "f:link.external" einen HTML-Link zu generieren. Der Fluid-Viewhelper greift dabei auf die übermittelte PageUID oder die angegebenen Verlinkung zurück und erzeugt einen klassischen HTML-Link (a-Tag). Dies funktioniert auch sehr zuverlässig, nur leider werden weitere Attribute (Target, Class, AdditionalParams, Title) eines Typolinks nicht berücksichtigt. Es wird lediglich die Zieladresse für das a-Tag und dessen Attribut "href" generiert.
Gespeichert wird je nach Art des Links der Parameter, der für das TypoScript "typolink.parameter" gedacht ist. In Fluid leider nicht 100% brauchbar.

TYPO3 Fluid: Typolink mit Target/Class/AdditionalParams/Title aus Flexform/TCA-Config im Fluid-View rendern

Abhilfe schafft ein zu Verfügung gestellter Fluid Typolink-ViewHelper:
github.com - TypolinkViewHelper.php
Der Typolink-Viewhelper berücksichtigt die übermittelten Parameter eines Typolinks aus dem aktuellen Datensatz und rendert daraus ein HTML-Tag mit allen Attributen.

Das Ergebnis mit dem Typolink-ViewHelper (Fluid):

<a class="externerLinkviaTypoLink" title="Titel des Typolinks" href="http://www.domain.tld?noMobile=1" target="_blank">TypoLink mittels TypolinkViewHelper</a>

Im Fluid-View kann der Typolink-ViewHelper wie folgt angesprochen werden:

<tx:Typolink parameter="{myLinkInputField}">TypoLink mittels TypolinkViewHelper</tx:Typolink>

Zuvor müsst ihr den ViewHelper via Namespaces in dem aktuellen Template oder Partial, wo ihr euch befindet, zur Verfügung stellen.
Die Datei des Typolink-ViewHelpers legt ihr in eurer Extension unter "Classes/ViewHelpers/TypolinkViewHelper.php" ab.

{namespace tx=Tx_MyExtensionName_ViewHelpers}

Tags: , , , , , , , ,

2 Antworten auf "TYPO3 Fluid: Typolink mit Target / Class / AdditionalParams / Title aus Flexform/TCA-Config im Fluid-View rendern"

  • Karsten says:
  • francesca says:
Hinterlasse eine Nachricht