*push* hat niemand eine Idee oder einen Ansatz?
:-/

Ich habe zwischenzeitlich Versucht, den stdWarp.outerWrap.override in ein COA zu verwandeln und a) den gesamten override mit if nur auszugeben, wenn es das letzte Element ist ( value.data = cObj:parentRecordNumber equals.data = register:totalRecords ), das klappt auch soweit b) dann die 10 und 20 des COAs jeweils wieder mit if abzufragen, aber da geht irgendwas schief:

stdWrap.outerWrap.override.cObject = COA
stdWrap.outerWrap.override.cObject {
        if.value.data = cObj:parentRecordNumber
        if.equals.data = register:totalRecords
# ist das erste nach dem modulo und das letzte element, eine ganzes div # muss drumrum
        10 = TEXT
        10.value = <div class="group last first">|<!-- .group.last.first 
--></div>
        10.if {
                value.data = cObj:parentRecordNumber
                wrap = |%4
                prioriCalc = 1
                equals = 1
        }
        # das letzte element, aber nicht das erste, also div nur zumachen
        20 = TEXT
        20. value = |<!-- .group.last --></div>
        20.if {
                value.data = cObj:parentRecordNumber
                wrap = |%4
                prioriCalc = 1
                equals = 1
                negate = 1
        }
}

es wird immer die 20 ausgegeben, niemals die 10. :(

Viele Grüße
Tom

Am 28.03.11 12:41, schrieb Tom Arnold:
So, weiter im Selbstgespräch.

Die Anzahl der Gesamtrecords habe ich nun auch, mit LOAD_REGISTER und
numRows.

Jetzt gibt es noch eine letzte Sache:

Wenn der letzte Record gleichzeitig der erste Record nach dem Modulo
ist, dann wird durch die Überprüfung auf "es ist das letzte", das
startende Group-Div nicht erzeugt... argh.

Ich brauche also *noch* eine Überprüfung.

Im Moment wird innerhalb des CASE des outerWraps gecheckt, ob es der
erste Record (oder der erste nach dem der Modulo=0 ist) ist, oder der
Record, bei dem der Modulo=0 ist.

Dann wird im Override des Outerwrap geschaut, ob es der letzte Record ist.

Hier müsste jetzt noch die Überprüfung rein, ob es der erste Record
(nach dem Modulo) UND der letzte Record ist - und wieder stehe ich vor
einem Rätsel.

temp.gruppen = CONTENT
temp.gruppen {
(selectkrams...)
renderObj = COA
renderObj {
stdWrap.dataWrap =
<div class="item-{cObj:parentRecordNumber}">|</div>

1 = LOAD_REGISTER
1.totalRecords = TEXT
1.totalRecords.numRows < temp.gruppen

stdWrap.outerWrap.cObject = COA
stdWrap.outerWrap.cObject {
10 = CASE
10.key.cObject = TEXT
10.key.cObject.data = cObj:parentRecordNumber
# 2, Berechnung per Modulo
10.key.cObject.wrap = |%4
10.key.prioriCalc = intval
# default: nix wrappen
10.default = TEXT
10.default.value = |
# erstes element: groupwrap oeffnen:
10.1 = TEXT
10.1.value = <div class="group">|
# modulo = 0: groupwrap schliessen:
10.0 = TEXT
10.0.value = |<!-- .group --></div>
}
stdWrap.outerWrap.override.cObject = COA
stdWrap.outerWrap.override.cObject {
if.value.data = cObj:parentRecordNumber

# wie bekomme ich hier die numRows hin?
if.equals.data = register:totalRecords

10 = TEXT
10.value = |<!-- .group .last --></div>
}
10 = TEXT
10.value = (Hier der Inhalt)
}
}

Viele Grüsse
Tom




Am 27.03.11 19:51, schrieb Tom Arnold:
Soo, fast am Ziel :)

Das letzte Puzzlestück, den letzten Record zu identifizieren und
ebenfalls mit dem schliessenden Group-Div zu versehen, klappt, wenn ich
die Anzahl der Records als Zahl reinschreibe (14). Perfekt wäre es, wenn
ich an dieser Stelle sowas wie cObj:parentRecordTotal oder eben die
numRows aus dem select benutzten könnte...

temp.gruppen = CONTENT
temp.gruppen {
(selectkrams...)
renderObj = COA
renderObj {
stdWrap.dataWrap =
<div class="item-{cObj:parentRecordNumber}">|</div>
stdWrap.outerWrap.cObject = COA
stdWrap.outerWrap.cObject {
10 = CASE
10.key.cObject = TEXT
10.key.cObject.data = cObj:parentRecordNumber
# 2, Berechnung per Modulo
10.key.cObject.wrap = |%4
10.key.prioriCalc = intval
# default: nix wrappen
10.default = TEXT
10.default.value = |
# erstes element: groupwrap oeffnen:
10.1 = TEXT
10.1.value = <div class="group">|
# modulo = 0: groupwrap schliessen:
10.0 = TEXT
10.0.value = |<!-- .group --></div>
}
stdWrap.outerWrap.override.cObject = COA
stdWrap.outerWrap.override.cObject {
if.value.data = cObj:parentRecordNumber

# wie bekomme ich hier die numRows hin?
if.equals = 14

10 = TEXT
10.value = |<!-- .group .last --></div>
}
10 = TEXT
10.value = (Hier der Inhalt)
}
}

Hat da jemand eine Idee?
Vielem Dank,
Tom



Am 27.03.11 14:12, schrieb Tom Arnold:
Argh. Einen kleinen Schönheitsfehler hat das Ganze noch: Die letzte
Group wird nicht geschlossen, wenn es nicht genau auf 4 aufgeht. Damn.
Zu früh gefreut.


Am 27.03.11 13:45, schrieb Tom Arnold:
temp.gruppen = CONTENT
temp.gruppen {
(selectkrams...)
renderObj = COA
renderObj {
stdWrap.dataWrap =
<div class="item-{cObj:parentRecordNumber}">|</div>
stdWrap.outerWrap.cObject = COA
stdWrap.outerWrap.cObject {
10 = CASE
10.key.cObject = TEXT
10.key.cObject.data = cObj:parentRecordNumber
# 2, Berechnung per Modulo
10.key.cObject.wrap = |%4
10.key.prioriCalc = intval
# default: nix wrappen
10.default = TEXT
10.default.value = |
# erstes element: groupwrap oeffnen:
10.1 = TEXT
10.1.value = <div class="group">|
# modulo = 0: groupwrap schliessen:
10.0 = TEXT
10.0.value = |<!-- .group --></div>
}
10 = TEXT
10.value = (Hier der Inhalt)
}
}




_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an