[TYPO3-german] Counter mit TypoScript

Reimann, Florian Florian.Reimann at hogrefe.de
Fri May 27 10:00:51 CEST 2011


Ja richtig gut. Nach leichten Anpassungen läuft das so. Und nun hab ich auch mal ne Übersicht wann er was parst. Genial! Danke dir!

LG
Florian

-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Christian Wolff
Gesendet: Freitag, 27. Mai 2011 09:40
An: typo3-german at lists.typo3.org
Betreff: Re: [TYPO3-german] Counter mit TypoScript

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 26.05.2011 15:48, schrieb Reimann, Florian:
> Hallua,
> 
> also ich habe ja schon wraps gemacht von einem submenu. Nur ich muss irgendwie nach jedem dritten Punkt ein <div> einstöpseln. Bzw bin ich mittlerweile soweit, das ich einen counter habe der auch zählt wie er soll,
> nur ich bekomme die abfrage auf den Wert nicht so wie ich die brauche. 
> 
> 1337 = LOAD_REGISTER
> 				1337 {
> 				    divCounter.data = register:divCounter
> 				    divCounter.stdWrap.wrap = |+1
> 				    divCounter.prioriCalc=1
> 				}
> 
> 				[{register:imageCounter} = 3]
> 				...
> 				[else]
> 				...
> 				[end]
> 
> Was mach ich denn da falsch?

hallo Florian.
du fragst momentan mit einer Condition ab (eckige klammern)
das funktioniert aber nicht das conditions ausgewertet werden bevor das
typoscript gerendert wird.

das Parsen der typoscript templates läuft ungefähr so ab:

1. Konstanten im Code Ersetzten.
2. Conditions überprüfen und die richtigen
blöcke hintereinander setzten.
3. Zeilenweises Parsen vom Typoscript Code in ein Verschachteltes Array.
4. PAGE objekt aus dem Array erstellen. diese erzeugt dann weitere
unterobjekte ...


LOAD_REGISTER ist so ein Objekt und kommt also erst in Phase 4 dran.
lässt sich also nicht mit einer Condition Auswerten.

um in Phase 4 entscheindungen zu treffen must stdWrap.if oder
das CASE Object einsetzten.


ein UNGETESTETE Beispielcode könnte so aussehen:
10 = COA
10 {
  100 = LOAD_REGISTER
  100 {
    divCounter.data = register:divCounter
    divCounter.stdWrap.wrap = |+1
    divCounter.prioriCalc=1
  }
  200 = CASE
  200 {
    key.data = register:divCounter
    3 = COA
    3 {
      10 = TEXT
      10.value = <div class="divCounter-3"></div>
      20 = LOAD_REGISTER
      20.divCounter = 0
    }
  }
}


die Idee Dahinter ist folgende:
LOAD_RGISTER zählt. hoch.
und das CASE Object gibt den div aus falls das register gerade 3
enthält. und setzt dann das Register wieder auf 0.

gruss chris




- -- 
Christian Wolff // Berlin
http://www.connye.com

some projects:
http://richtermediagroup.com | http://titanic.de | http://keyopinions.info
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)

iEYEARECAAYFAk3fVVYACgkQIcCaXPh/JHG8agCgnfRJ3B4U4QkX8eH2w3FFKaI9
FxAAn2sfi248/9oLUcT97eYSdx52xHCE
=rcoa
-----END PGP SIGNATURE-----
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list