Problem: Ich habe ein Template erstellt, das ein DIV mit einem Bild enthält. Ich mappe in TemplaVoilà das Bild auf den Content-Typ „Bild“, möchte aber dem Benutzer noch die Möglichkeit geben, die Bildbreite selbst anzugeben. Dazu habe ich ein Textfeld gemapped mit der Bezeichnung „field_image_width“. Zusätzlich soll – falls er keine Bildbreite angegeben wird – ein Default-Wert genommen werden.
So muss man den entsprechenden Abschnitt in der XML-Datenstruktur von TemplaVoilà anpassen:
<TypoScript>
10 = COA
10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW.field = field_image_width
10.file.maxW.override = 200
10.file.maxW.override.if.isFalse.field = field_image_width
10.stdWrap.typolink.parameter.field = field_link
</TypoScript>
Update: Geht auch kürzer das Ganze…
10 = IMAGE
10.file {
import = uploads/tx_templavoila/
import.current = 1
import.listNum = 0
width = 200
width.override.field = field_imgwidth
height = 800m
height.override.field = field_imgheight
}
Damit bei dem gemappten Feld „Link“ ein eigener Text statt des Seiten-Names erscheint, hilft dieses Script, ebenfalls in der XML-Datenstruktur des Template-Objektes:
<TypoScript>
10 = TEXT
10.value = Weiterlesen...
10.lang.en = Read on...
10.typolink.parameter.current = 1
</TypoScript>
Schöne Ergänzung: Für eine Bildgalerie soll in den Seiteneigenschaften der Seite eine Anzahl von Bildern pro Zeile (TemplaVoilà-Feld: field_imgs_per_row) und eine Bildhöhe (TemplaVoilà-Feld: field_imgs_height) angegeben werden. Diese Felder werden über kbtvcontslide vererbt.
Anhand der Spaltenbreite von 700px sollen die Bilder auf die passende Größe umgerechnet werden, damit genau die angegebene Anzahl an Bildern nebeneinander ins Layout passt:
10 = IMAGE
10.file {
...
width = 200
width.override.cObject = COA
width.override.cObject {
wrap = 700/|
stdWrap.prioriCalc = 1
10 = TEXT
10 {
postUserFunc = tx_kbtvcontslide_pi1->main
postUserFunc.field = field_imgs_per_row
}
}
height = 100c
height.override.cObject = COA
height.override.cObject {
wrap = |c
10 = TEXT
10 {
postUserFunc = tx_kbtvcontslide_pi1->main
postUserFunc.field = field_imgs_height
}
}
}