Jedes vierte Element anders wrappen

  • donillo donillo
    R2-D2
    0 x
    78 Beiträge
    0 Hilfreiche Beiträge
    05. 10. 2011, 14:09

    Moin,

    ich brauche die Möglichkeit jedem vierten Element einer Seite eine andere CSS-Klasse mitzugeben.
    Nach einigem suchen habe ich etwas gefunden, das auch prinzipiell funktioniert:

    1. FLEX = CONTENT
    2. FLEX {
    3. table = tt_content
    4. select.orderBy = sorting
    5. select.where = colPos = 1
    6. select.languageField=sys_language_uid
    7. #renderObj < tt_content
    8. renderObj = COA
    9. renderObj {
    10.  
    11. 30 {
    12. contentCounter.data = register:contentCounter
    13. contentCounter.stdWrap.wrap = |+1
    14. contentCounter.prioriCalc = 1
    15. }
    16.  
    17. # Wrap around each content item
    18. stdWrap.wrap = <div class="flex">|</div>
    19. stdWrap.wrap.override = <div class="flexLast">|</div>
    20. equals.data = register:contentCounter
    21. equals.stdWrap.wrap = |%4
    22. equals.prioriCalc = 1
    23. value = 0
    24. }
    25.  
    26. }
    27. #renderObj.stdWrap.wrap = <div class="flex">|</div>
    28.  
    29. }

    Es wird mir die Struktur der divs richtig ausgegeben, nur ist mein Inhalt leer/weg. Wo habe ich denn da einen Denkfehler?

    Irgendwie war mein Beitrag jetzt weg, deswegen noch einmal.


  • 1
  • sktypo3 sktypo3
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    17. 10. 2011, 17:46

    Ich glaube, weil du ein COA erstellst, hast du nicht mehr dein Element unter |.
    Eine Lösung wäre, kein COA zu erstellen, den stdWrap direkt auf renderObj und den Counter als stdWrap.prepend beim renderObj einfügen.
    Eine andere wäre, die fields im COA anzugeben, aber ich denke, dass du den Aufwand nicht haben möchtest.

    Beispiel:

    1. #renderObj = COA
    2. renderObj {
    3. contentCounter.data = register:contentCounter
    4. contentCounter.stdWrap.wrap = |+1
    5. contentCounter.prioriCalc = 1
    6. }
    7.  
    8. # Wrap around each content item
    9. stdWrap.wrap = <div class="flex">|</div>
    10. stdWrap.wrap.override = <div class="flexLast">|</div>
    11. equals.data = register:contentCounter
    12. equals.stdWrap.wrap = |%4
    13. equals.prioriCalc = 1
    14. value = 0
    15. }
    16. }

  • donillo donillo
    R2-D2
    0 x
    78 Beiträge
    0 Hilfreiche Beiträge
    25. 10. 2011, 14:12

    OK, vielen Dank!
    Das funzt, auch wenn nun das erste Element anders gewrapt wird, aber das ist auch ok ;)

  • 1