[TYPO3-german] Element-Gruppen wrappen in eigenem Content mit TS

Tom Arnold t3list at bnt.de
Tue Mar 29 15:19:09 CEST 2011


*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)
>>>> }
>>>> }
>>>
>>
>



More information about the TYPO3-german mailing list