Zum Inhalt springen

Counter im Content-Element

Erstellt am 24. November 2013 · 3 Antworten · letzte Antwort am 24. Juli 2014

Tags: Frage

mimii ·

Hallo ins Forum,

wie kann ich einen Counter für bestimmte Content-Elemente setzen Es sollen nur Elemente die Layout = 1 haben einen Zähler kriegen.

Mein Code ist folgender, der allerdings nicht funktioniert.

lib.contents < styles.content.get
lib.contents {
  renderObj.stdWrap.wrap.cObject = CASE
  renderObj.stdWrap.wrap.cObject {
    key.field = layout
    1 < tt_content.stdWrap.innerWrap.cObject.default
    1 = LOAD_REGISTER
    1 {
      counter {
        cObject = TEXT  
        cObject.data = register:counter
        cObject.wrap = |+1
        prioriCalc = intval
      }

    1 = TEXT
    1.value = <div class="layoutTableCell_50{register:counter}">|</div>  
    } 
  }
}

Danke für n Tipp und Gruß
mimii

karlchen ·

wie wäre es mit Javascript/jQuery ?

was hast du denn genau vor ? Denn im Moment ist dein Code oben etwas wild.
Z.B. Überschreibst du mit "1 = TEXT" -> "1 = LOAD_REGISTER" und damit 1 < tt_content...

mimii ·

Guten Morgen,

danke für die Antwort. Ja der Code ist wild, weil ich wild am probieren bin ;-)

Ich möchte für die Content-Elemente, die Layout 1 haben einen Zähler setzen. Der soll mir dafür dienen, um jeweils zwei dieser Elemente einen wrap rum zu setzen.

So funktioniert zumindest der Zähler

lib.contents < styles.content.get
lib.contents {
  renderObj {
    #wrap = <div class="test">|</div>
    stdWrap.wrap.cObject = CASE
    stdWrap.wrap.cObject {
      key.field = layout
      1 = COA
      1 {
        10 = LOAD_REGISTER
        10 {
            counter {
            cObject = TEXT
            cObject.data = register:counter
            cObject.wrap = |+1
            prioriCalc = intval
          }
        } 
        20 < tt_content.stdWrap.innerWrap.cObject.default
        20 = TEXT
        20.value = <div class="layoutTableCell_50">|</div>
      }
    }
  }
}

Wie kann ich jetzt eine Schleife in Abhängigkeit des Zählers setzen, so dass vor jedem ersten Element ein <div class="test"> und nach jedem zweiten Element ein </div> gesetzt wird.

Danke für n Tipp und viele Grüße
mimii

matthias_k ·
renderObj {
    stdWrap.outerWrap.cObject = COA
    stdWrap.outerWrap.cObject {
        10 = LOAD_REGISTER
        10 {
            CeCounter.stdWrap.dataWrap = {register:CeCounter} + 1
            CeCounter.prioriCalc = intval
            // siehe Modulos http://php.net/manual/de/language.operators.arithmetic.php
            // %2 gibt Dir eine Kette 0,1,0,1,0,1 Werten
            // %3 würde Dir eine Kette von 0,1,2,0,1,2,0,1,2 geben zum Beispiel
            moduloCeCount.stdWrap.dataWrap = {register:CeCounter}%2
            moduloCeCount.prioriCalc = intval
        }
        20 = CASE
        20 {
            key.data = register:moduloCeCount
            // default ist 0
            default = TEXT
            default.dataWrap = classEven :: {register:CeCounter} :: {register:moduloCeCount}
            1 = TEXT
            1.value.dataWrap = classOdd :: {register:CeCounter} :: {register:moduloCeCount}
            // hier dann mit 2 = TEXT weitermachen, wenn Du oben %3 hättest
        }
    }
}