Bessere User Experience dank TYPO3 Linkhandler

Linkhandler ab TYPO3 8: einfach News, Jobs etc. verlinken

Der Linkhandler ermöglicht es ab der TYPO3 8.7 LTS verschiedenste Datensätze direkt im Text zu verlinken. Doch was hat es mit dem Linkhandler auf sich und wie lässt er sich einrichten?

TYPO3 ist ein sehr flexibles Content Management System. Kundenindividuell lassen sich Datensätze anfertigen und verwalten, wie beispielsweise News, Jobs, Ansprechpartner oder Termine. Diese können dann u.a. als sortierte Liste und sogar als Detailansicht als einzelne Seite angezeigt werden. Doch wie können Redakteure diese Seiten im Text, genauer gesagt im Rich Text Editor, verlinken?

Der Linkhandler für Redakteure

Nehmen wir als Beispiel die News. Sie erstellen im TYPO3 einen neuen Artikel. Die neuesten drei Artikel werden auf Ihrer Startseite dargestellt. Zusätzlich gibt es ein Archiv mit allen Artikeln aufgelistet. Für jede News gibt es eine sogenannte Detailansicht. Das heißt eine separate Seite im TYPO3, wo alle relevanten Informationen zu einem News-Artikel dargestellt werden.

Nun kann es sein, dass Sie einen Text schreiben oder Bild im TYPO3 einfügen, welches auf einen Artikel verlinken soll. Betätigt ein Nutzer diesen Link, gelangt er automatisch zur Detailansicht. Nun können Sie die URL direkt im RTE eintragen. Komfortabler und nachhaltiger ist es jedoch auf den Datensatz zu verlinken. Wie das geht, zeigt das folgende Video.

Ändert sich bei der bisherigen Vorgehensweise die URL des Artikels beispielsweise dadurch, weil Ihnen noch ein Rechtschreibfehler im Titel aufgefallen ist, so ist der bisherige Link nicht mehr gültig. Nutzen Sie besser die Methode aus dem Video. Haben Sie so den Datensatz verlinkt, aktualisiert sich dieser Link automatisch und die Verknüpfung bleibt erhalten.

Im Folgenden zeigen wir den Integratoren, wie Sie diese Funktion den Redakteuren bereitstellen können.

Backend: Linkhandler im TSconfig

Um einen Linkhandler den Redakteur im Backend zur Verfügung zu stellen, werden einige Zeilen pageTSconfig benötigt, genauer gesagt im TCEMAIN. In dem Codebeispiel haben wir 3 neue Verlinkungsmöglichkeiten geschaffen.

 TCEMAIN {
 linkHandler {
 tx_news {
 handler = TYPO3\CMS\Recordlist\LinkHandler\RecordLinkHandler
 label = LLL:EXT:cs_templates/Resources/Private/Language/locallang_db.xlf:TCEMAIN.linkHandler.tx_news
 configuration {
 table = tx_news_domain_model_news
 storagePid = 86
 hidePageTree = 1
 }
 scanAfter = page
 }

 tx_csevents {
 handler = TYPO3\CMS\Recordlist\LinkHandler\RecordLinkHandler
 label = LLL:EXT:cs_templates/Resources/Private/Language/locallang_db.xlf:TCEMAIN.linkHandler.tx_csevents
 configuration {
 table = tx_news_domain_model_news
 storagePid = 87
 hidePageTree = 1
 }
 scanAfter = page
 displayAfter = tx_news
 }

 tx_cshosts {
 handler = TYPO3\CMS\Recordlist\LinkHandler\RecordLinkHandler
 label = LLL:EXT:cs_templates/Resources/Private/Language/locallang_db.xlf:TCEMAIN.linkHandler.tx_cshosts
 configuration {
 table = tx_cshosts_domain_model_host
 hidePageTree = 0
 }
 scanAfter = page
 displayAfter = tx_csevents
 }
 }
}

 

Nachdem der Cache geleert wurde, sehen wir im CKEditor direkt die neuen Tabs.

Neue Tabs des TYPO3 Linkhandlers im Link Wizard vom RTE

Achtung: Wenn Sie das pageTSconfig mit registerPageTSConfigFile  und über die Auswahl in den Seiteneinstellungen hinzugefügt haben, werden die Links im Frontend nicht gerendert, sondern einfach nicht als Links ausgegeben. Das rührt daher, dass diese Dateien im Frontend noch nicht mit geladen werden. Daher müssen diese Einstellungen entweder direkt in die Seiteneigenschaften geschrieben oder die Datei an der selben Stellen inkludiert werden.

TYPO3 Linkhandler im Seiten-TSconfig Feld einbinden

Frontend: Linkhandler im TypoScript

Nun muss TYPO3 noch gesagt werden, wie es mit diesen Verlinkungen umgehen soll. Anders ausgedrückt, wie soll der Link im Frontend gerendert werden. Die entsprechende Konfiguration findet unter config.recordLinks im TypoScript statt.

config.recordLinks {
 tx_news {
 typolink {
 parameter = {$plugin.tx_news.settings.defaultDetailPid}
 additionalParams.data = field:uid
 additionalParams.wrap = &tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&tx_news_pi1[news]=|
 useCacheHash = 1

 ATagParams.data = parameters:allParams
 target.data = parameters:target
 title.data = parameters:title

 extTarget = _blank
 extTarget.override.data = parameters:target
 }
 forceLink = 1
 }

 tx_csevents < .tx_news

 tx_csevents {
 typolink {
 parameter = {$plugin.tx_csevents.settings.detailPid}
 }
 forceLink = 1
 }

 tx_cshosts < .tx_news

 tx_cshosts {
 typolink {
 parameter = {$plugin.tx_cshosts_pi1.settings.detailPid}
 additionalParams.wrap = &tx_cshosts_pi1[controller]=Host&tx_cshosts_pi1[action]=show&tx_cshosts_pi1[host]=|
 }
 }
}

Wenn der Linkhandler einmal konfiguriert wurde, dann lassen sich die Einstellungen leicht für andere Erweiterungen übernehmen.

Achtung: Die Angaben wie title.data und ATagParams.data sind wichtig, ansonsten werden nicht alle Einstellungen aus dem RTE übernommen.

Ausblick

Der Linkhandler funktioniert so auch in der neuen TYPO3 9.0. Weitere Videos rund um das Thema TYPO3 und mehr finden Sie auch auf unserem YouTube-Kanal.

Falls Sie Fragen oder Anmerkungen zum Beitrag haben, schreiben Sie uns gerne einen Kommentar oder nehmen Sie mit uns Kontakt auf.

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.