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> }
  1. tt_content.stdWrap.outerWrap.cObject = COA
  2. tt_content.stdWrap.outerWrap.cObject {
  3.  
  4.   10.werbung.cObject = TEXT
  5.   10.werbung.cObject.data = register:werbung
  6.   10.werbung.cObject.wrap = |+1
  7.   10.werbung.prioriCalc = intval
  8.  
  9.   20 = CASE
  10.   20.key.cObject = TEXT
  11.   20.key.cObject.data = register:werbung
  12.   # 2, Berechnung per Modulo
  13.   20.key.cObject.wrap = |%2
  14.   20.key.prioriCalc = intval
  15.   20.default = TEXT
  16.   20.default.value = <div class="d">|</div>
  17.   20.1 = TEXT
  18.   20.1.value = <div class="d1">|</div>
  19. }

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> }
  1. 10.conf.tt_content.stdWrap.outerWrap.cObject = COA
  2. 10.conf.tt_content.stdWrap.outerWrap.cObject {
  3.  
  4.   10.werbung.cObject = TEXT
  5.   10.werbung.cObject.data = register:werbung
  6.   10.werbung.cObject.wrap = |+1
  7.   10.werbung.prioriCalc = intval
  8.  
  9.   20 = CASE
  10.   20.key.cObject = TEXT
  11.   20.key.cObject.data = register:werbung
  12.   # 2, Berechnung per Modulo
  13.   20.key.cObject.wrap = |%2
  14.   20.key.prioriCalc = intval
  15.   20.default = TEXT
  16.   20.default.value = <div class="d">|</div>
  17.   20.1 = TEXT
  18.   20.1.value = <div class="d1">|</div>
  19. }

Sponsored by:

ideenwerft webhosting
ideenwerft caretaker