Navigation

 ·   Wiki Home
 ·   Wiki Hilfe (englisch)
 ·   Kategorien
 ·   Titel-Liste
 ·   Uncategorized Pages
 ·   Zufällige Seite
 ·   Datei hochladen
 ·   Hochgeladene Dateien
 ·   Letzte Änderungen
 ·   RSS
 ·   Atom
 ·   What Links Here

Aktive Mitglieder :

Suchen:

 

Seite erstellen oder suchen :

 

Zeigen Links auf News

Extension linkhandler

Mit dieser Extension können im RTE (bzw. in den normalen Inhaltselementen) Links auf News-Einträge oder auf beliebige sonstige Datensätze erstellt werden. Die Extension funktioniert sehr gut und lässt sich ideal konfigurieren.

Installation

Einfach installieren und nicht vergessen, das statische Template einzubinden. Danach funktioniert die Extension sinsoweit, dass man Links im RTE erstellen kann; allerdings werden diese noch nicht im Frontend geparst. Das muss über TypoScript erst konfiguriert werden.

Konfiguration des Link-Browsers im RTE

Dazu folgende Zeilen im TSconfig der Rootseite eingeben (bzw. der Seite, die auch die restliche Konfiguration des RTE enthält)

# das erstellt einen neuen Tab im Linkbrowser. Es können mehrere erstellt werden,
# für jede Tabelle aber nur einer.
RTE.default.tx_linkhandler {
    
# Browser für tt_news-Datensätze
    
tt_news {
        
# Das steht im Tab als Label
        
label=Label des Tabs
        
# die Tabelle, die die gewünschten Datensätze enthält
        
listTables=tt_news
        
# nur die Seiten im Seitenbaum zeigen, die auch die
        # gewünschen Datensätze enthalten.  
        
onlyPids=28,65
    }
}

Konfiguration der Links

Die Links müssen im TypoScript-Setup konfiguriert werden. Die einfache Variante verwendet nur eine einzige Zielseite für die Singledarstellung der News:

plugin.tx_linkhandler {
    tt_news {
        
# uid der Seite, auf der die Singledarstellung der News erfolgt
        
parameter = 25
        
# weitere Parameter, insbesondere die richtige uid der News
        
additionalParams=&tx;_ttnews[tt_news]={field:uid}
        
# nötig, damit {field:uid} ersetzt wird
        
additionalParams.insertData=1
        
# wichtig, damit cachen möglich ist.   
        
useCacheHash=1
        
# versteckte News können nicht gelinkt werden
        
forceLink = 0
    }
}

Eine etwas komplexere Variante, die abhängig von der pid der News-Datensätze eine andere Seite für die Single-Darstellung aufruft:

plugin.tx_linkhandler {
    tt_news {
        title
=TEXT
        title
.data = field:title
        parameter
.stdWrap.cObject = CASE
        
parameter.stdWrap.cObject {
            
# abhängig vom Eintrag in pid der News-Tabelle
            
key.field = pid
            
# falls dieser 65 lautet
            
65 = TEXT
            
# wird parameter auf 85 gesetzt, der uid der
            # Zielseite mit der Single-Darstellung
            
65.value = 85
            
# Default für alle anderen Werte in pid
            
default = TEXT
            
# Zielseite mit uid 25
            
default.value = 25
        }
        additionalParams
=&tx;_ttnews[tt_news]={field:uid}
        additionalParams
.insertData=1      
        useCacheHash
=1
        forceLink
= 0
    }
}

Man kann auch beliebige andere Tabellen so ansprechen, auch aus eigenen Extensions. Hier ein Beispiel im TSConfig, das weitere Reiter im Dateibrowser des RTE erzeugt, die auf Datensätze von eigenen Extensions zugreifen:

RTE.default.tx_linkhandler { {
    buecher {
        label
= Buchtitel
        listTables
=tx_buchtitel_liste
        onlyPids
=68
    }
}

Dazu dann diese Entsprechung in Setup für das Verarbeiten der Links:

plugin.tx_linkhandler {
    tx_buchtitel_liste {
        parameter
= 69
        additionalParams
=&myParam;={field:uid}
        additionalParams
.insertData=1      
        useCacheHash
=1
        forceLink
= 0
        
    }
}

Dabei ist tx_buchtitel_liste der Name der SQL-Tabelle, parameter die uid der Zielseite mit der Single-Darstellung.

So können beliebig viele Reiter im RTE angelegt werden, die auf Datensätze in beliebigen Tabellen verweisen.

Weiterführende Links

Category:Typo3 -> RTE
Category:Typo3 -> Extensions

Kategorien: