Content abwechselnd wrapen
Armin Bartsch, Montag, 23. März 2009
Content Elemente abwechselnd mit unterschiedlichen wrap versehen
Mit Hilfe des cObject LOAD_REGISTER und der Eigenschaft prioriCalc wird ein einfacher Counter per TypoScript erstellt. Der Counter zählt bei jedem Schleifendurchlauf um 1 höher, im ersten Durchlauf wird 1 gesetzt.
Mit Modulo wird der Rest der Divsion ermittelt. Dieses Ergebnis wird benötigt um innerhalb der Schleife mit der Abfrage CASE, je nach Durchlauf, einen unterschiedlichen wrap zurück zugeben. Die Rückgabe des benötigten wrap muss innerhalb von CASE über value erfolgen!
tt_content.stdWrap.outerWrap.cObject = COA
tt_content.stdWrap.outerWrap.cObject {
10 = LOAD_REGISTER
10.werbung.cObject = TEXT
10.werbung.cObject.data = register:werbung
10.werbung.cObject.wrap = |+1
10.werbung.prioriCalc = intval
20 = CASE
20.key.cObject = TEXT
20.key.cObject.data = register:werbung
# 2, Berechnung per Modulo
20.key.cObject.wrap = |%2
20.key.prioriCalc = intval
20.default = TEXT
20.default.value = <div class="d">|</div>
20.1 = TEXT
20.1.value = <div class="d1">|</div>
}
tt_content.
stdWrap.outerWrap.
cObject {
10.werbung.
cObject =
TEXT
10.werbung.cObject.data = register:werbung
10.werbung.cObject.wrap = |+1
10.werbung.prioriCalc = intval
20.key.cObject.data = register:werbung
# 2, Berechnung per Modulo
20.key.cObject.wrap = |%2
20.key.prioriCalc = intval
20.default.value = <div class="d">|</div>
20.1.value = <div class="d1">|</div>
}
Mit einigen Änderungen kann das Bespiel auch angepasst werden, so das z.B. jedes dritte Content-Element einen anderen wrap erhält. Dazu einfach den Wert für Modulo und CASE entsprechend anpassen.
TemplaVoila
Wenn TemplaVoila eingesetzt wird, muss die Anpassung im XML des DS oder TO erfolgen.
10.conf.tt_content.stdWrap.outerWrap.cObject = COA
10.conf.tt_content.stdWrap.outerWrap.cObject {
10 = LOAD_REGISTER
10.werbung.cObject = TEXT
10.werbung.cObject.data = register:werbung
10.werbung.cObject.wrap = |+1
10.werbung.prioriCalc = intval
20 = CASE
20.key.cObject = TEXT
20.key.cObject.data = register:werbung
# 2, Berechnung per Modulo
20.key.cObject.wrap = |%2
20.key.prioriCalc = intval
20.default = TEXT
20.default.value = <div class="d">|</div>
20.1 = TEXT
20.1.value = <div class="d1">|</div>
}10.conf.
tt_content.
stdWrap.outerWrap.
cObject =
COA
10.conf.
tt_content.
stdWrap.outerWrap.
cObject {
10.werbung.
cObject =
TEXT
10.werbung.cObject.data = register:werbung
10.werbung.cObject.wrap = |+1
10.werbung.prioriCalc = intval
20.key.cObject.data = register:werbung
# 2, Berechnung per Modulo
20.key.cObject.wrap = |%2
20.key.prioriCalc = intval
20.default.value = <div class="d">|</div>
20.1.value = <div class="d1">|</div>
}