[TYPO3-german] Problem mit parseFunc und COA

Christian Wolff chris at connye.com
Sun May 10 22:30:10 CEST 2009


Johannes Dörr schrieb:
> Hallo!
> ich habe eine Verschachtelung von mehreren COA-Objekten, deren Output
> ich vorher durch eine eigene Funktion jagen möchte, um Zeichen wie
> Zeilenwechsel zu entfernen und andere Zeichen zu escapen (um das ganze
> für JASON kompatibel zu machen). Für diesen Zweck lautet mein TS:
> 
>   20 = COA
>   20.stdWrap.parseFunc.nonTypoTagUserFunc = user_JSON->encode
>   20 {
>     10 < lib.rootlinenav.30
>     ...
>   }
> 
> Die PHP-Datei sieht so aus:
> 
> <?php
> class user_JSON {
>   public function encode($data) {
>     return json_encode($data);
>   }
> }
> ?>
> 
> Die COA-Objekte erzeugen verschachtelte div-Tags, also sowas:
> 
> <div class="filebrowser_item itemuid-41"><div class="sitetree_item
> itemuid-26 "><div class
> ="sitetree_itemhead">...</div></div></div>
> 
> Komischerweise (?) wird nur das erste Div von der Funktion manipuliert,
> also nur dort sind zum Beispiel die Anführungsstrichte maskiert, beim
> Rest jedoch nicht.
> 
> Ich habe mir daraufhin mal angeschaut, was eigentlich in $data übergeben
> wird:
> <div class="filebrowser_item
> itemuid-41"><!--INT_SCRIPT.872c64ed2d9ae4194d30b7ae4b828ccc--></div>
> 
> 
> Kann mir jemand sagen, was hier passiert? Wie kann ich mein Problem
> lösen und Typo3 dazu bringen, dass der gesamte Inhalt an meine Funktion
> übergeben wird?
> 
> Bin für jeden Tipp sehr dankbar, da ich seit einigen Stunden an dieser
> Stelle nicht weiterkomme...
> 
> Viele Grüße,
> Johannes

Hi Johannes,
<!--INT_SCRIPT. ...

Heist das du ein USER_INT object bekommst. also ein object das bei jedem
seiten auf ruf neu gerendert werden soll.

intern läuft das so das die seite "normal" im cache abgelegt wird. und
beim seitenaufruf die <!--INT_Script marker dann durch die
entsprechednen objekte ersetzt werden.

eine blöde idee die mir jetzt erstmal einfallen würde währe den cache
der seite abzuschalten. (nicht so toll wenns eine viel gefragte seite ist)

eine ander möglichkeit währe es eine anderen hook zu nehmen um an den
content zu kommen.

ich denke 20.stdWrap.postUserFunc sollte eigendlich nach dem rendern der
 COA's aufgerufen werden. falls das auch noch nicht hilft
kannst du ein COA_INT nehmen so wird das bei jedem seitenaufruf neu
gerändert und damit natürlich auch alle funktionen in ihm.

gruss chris


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

some projects:
http://richtermediagroup.com | http://titanic.de |
http://fairplay-homepage.de


More information about the TYPO3-german mailing list