Eine normale TYPO3 Downloadliste stellt normalerweise eine Liste von Dateien als Tabelle dar, die Dateinamen sind dabei verlinkt und der Beschreibungstext, den man zusätzlich angeben kann, erscheint darunter. Man kann das Rendering der Liste jedoch anpassen, wenn man weiß, was zur Verfügung steht.
Ein Blick in den Quellcode zeigt, dass viele Informationen ins TYPO3-Register geschoben werden, auf das Register kann mit dem Keyword „register:“ per TS zugegriffen werden. Folgende Informationen werden ins Register gespeichert: linkedIcon, linkedLabel, filename, path, description, fileSize, fileExtension
So kann man das Rendering anpassen, damit anstatt Dateinamen die Beschreibung angezeigt wird. Einziger Nachteil dieses Schnipsels: es muss immer eine Beschreibung angegeben werden.
tt_content.uploads.20.itemRendering.20.1 > tt_content.uploads.20.itemRendering.20.2 > tt_content.uploads.20.itemRendering.20 { 1 = TEXT 1.value = <p><a href=" 2 = TEXT 2.data = register:path 3 = TEXT 3.data = register:filename 4 = TEXT 4.value = "> 5 = TEXT 5.data = register:description 6 = TEXT 6.value = </a></p> }
EDIT: Mit diesem If-Konstrukt wird anstatt der Beschreibung der Dateiname gerendert, wenn die Beschreibung leer ist (anstelle der 5 einsetzen und die 6 in 7 ändern)
# Beschreibung anzeigen, wenn vorhanden 5 = TEXT 5.data = register:description 5.if.isTrue.data = register:description # ansonsten Dateinamen anzeigen 6 = TEXT 6.data = register:filename 6.if.isTrue.data = register:description 6.if.negate = 1
Hallo,
eine kürze Variante:
#Dateilink
tt_content.uploads.20.itemRendering.20.1 >
#Beschreibung
tt_content.uploads.20.itemRendering.20.2 >
tt_content.uploads.20.itemRendering.20 {
2 = TEXT
2.dataWrap = |
2.value = {register:filename}
2.override = {register:description}
2.override.if.isTrue.data = register:description
2.insertData = 1
}
Viele Grüße
Danke für den Tipp.
Hier der vollständige Code, kombiniert mit dem Code aus dem Martin’s Kommentar:
[code]
# Dateilink
tt_content.uploads.20.itemRendering.20.1 >
# Beschreibung
tt_content.uploads.20.itemRendering.20.2 >
tt_content.uploads.20.itemRendering.20 {
1 = TEXT
1.value =
##############################################
# Beschreibung anzeigen, wenn vorhanden,
# ansonsten Dateinamen
##############################################
5 = TEXT
5.dataWrap = |
5.value = {register:filename}
5.override = {register:description}
5.override.if.isTrue.data = register:description
5.insertData = 1
7 = TEXT
7.value =
}
[/code]
Hier noch eine kürzere Variante (mit typolink):
[code]
# Dateilink: Original löschen
tt_content.uploads.20.itemRendering.20.1 >
# Beschreibung: Original löschen
tt_content.uploads.20.itemRendering.20.2 >
# Beschreibung: Mit Link neu erstellen
tt_content.uploads.20.itemRendering.20 {
1.typolink {
parameter.dataWrap = {register:path}{register:filename}
}
# Beschreibung anzeigen, wenn vorhanden, ansonsten Dateinamen
1.dataWrap = |
1.value = {register:filename}
1.override = {register:description}
1.override.if.isTrue.data = register:description
1.insertData = 1
}
[/code]
Bevor sich noch jemand einen Wolf sucht: beim allerletzten Beispiel fehlt vor der Zeile
[code]
1.typolink {
[/code]
noch dieses:
1 = TEXT
Also komplett:
[code]
# Dateilink: Original löschen
tt_content.uploads.20.itemRendering.20.1 >
# Beschreibung: Original löschen
tt_content.uploads.20.itemRendering.20.2 >
# Beschreibung: Mit Link neu erstellen
tt_content.uploads.20.itemRendering.20 {
1 = TEXT
1.typolink {
parameter.dataWrap = {register:path}{register:filename}
}
# Beschreibung anzeigen, wenn vorhanden, ansonsten Dateinamen
1.dataWrap = |
1.value = {register:filename}
1.override = {register:description}
1.override.if.isTrue.data = register:description
1.insertData = 1
}
[/code]
Das hat bei mir nicht funktioniert mit Typo3 v4.7 – folgendes aber:
[code]
tt_content.uploads.20.labelStdWrap.override = {register:description}
tt_content.uploads.20.labelStdWrap.insertData = 1
tt_content.uploads.20.labelStdWrap.override.if.isTrue.data = register:description
[/code]
hallo und vielen dank für all die nützlichen tipps, habe lange hin und her probiert und nun endlich auch’ne lösung für TYPO3 6.0 gefunden … vielleicht hilft ja auch dies, dem einen oder anderen …
tt_content.uploads.20 {
renderObj {
20.data = file:current:description // file:current:name
}
}