Typo3 TypoScript: Gesamtzahl der Bilder ermitteln kommaseparierte Liste

Beim Upload von mehreren Bildern in ein TemplaVoilà FCE oder ein Content-Element werden die Bilder als kommaseparierte Liste in der Datenbank gespeichert. In folgendem Beispiel sollten bei einem FCE alle hochgeladenen Bilder in einer Zeile ausgegeben werden. Dazu musste ermittelt werden, was die Gesamtzahl der hochgeladenen Bilder war und anhand dieser Summe automatisch berechnet werden, wie breit ein Bild sein muss. Zusätzlich sollten alle Bilder mit einem DIV gewrappt werden, das als Breite 100/“Gesamtzahl Bilder“ Prozent breit ist.

Um es noch ausgefeilter zu machen sollte das DIV um das erste und letzte Bild mit der Klasse „first“ bzw. „last“ gewrapped werden.

Für Suchmaschinen: Gesamtzahl Bilder in Upload-Feld ermitteln TypoScript. Get total number of images Typoscript. Typoscript split token cObjNum SPLIT_TOTAL. totalImages imagesCount Typoscript. Kommaseperierte Liste Bilder Gesamt. Uploads Bilder insgesamt als Zahl in Typoscript ausgeben.

10 = COA
10 {
 
3 = LOAD_REGISTER
3.SPLIT_TOTAL.cObject = TEXT
3.SPLIT_TOTAL.cObject.value = 0
 
4 = TEXT
4.value.field = field_bbalken_content
4.value.split {
token = ,
cObjNum = 1
1 {
4 = TEXT
4.value.cObject = LOAD_REGISTER
4.value.cObject {
SPLIT_TOTAL.cObject = TEXT
SPLIT_TOTAL.cObject {
data = register:SPLIT_TOTAL
wrap = |+1
}
SPLIT_TOTAL.prioriCalc = 1
}
}
}
 
 
 
20 = TEXT
20 {
 
value.field = field_bbalken_content
value.split {
token = ,
cObjNum = 1 |*| 2 |*| 99
 
1 {
5 = TEXT
5.cObject = TEXT
5.cObject {
data = register:SPLIT_TOTAL
wrap = 100/|
insertData = 1
}
5.prioriCalc = 1
5.dataWrap = <div class="bbalken-img first bbalken-img-{register:SPLIT_COUNT}" style="width:|%">
 
10 = IMAGE
10 {
file {
import.current = 1
import = uploads/tx_templavoila/
format = jpg
maxW.cObject = TEXT
maxW.cObject {
data = register:SPLIT_TOTAL
wrap = 950/|*1.5
}
maxW.prioriCalc = 1
}
}
 
15 = TEXT
15.value = </div>
}
 
2 < .1
2.5.dataWrap = <div class="bbalken-img bbalken-img-{register:SPLIT_COUNT}" style="width:|%">
 
99 < .1
99.5.dataWrap = <div class="bbalken-img last bbalken-img-{register:SPLIT_COUNT}" style="width:|%">
99.5.dataWrap.override = <div class="bbalken-img first last bbalken-img-{register:SPLIT_COUNT}" style="width:|%">
99.5.dataWrap.override.if {
value = 0
equals.data = register:SPLIT_COUNT
}
 
}
 
stdWrap.dataWrap = <div class="bbalken-imgwrap totalimgs-{register:SPLIT_TOTAL}">|</div>    
}
}

Schreibe einen Kommentar

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