Hallo Benjamin,
ich würde auch dafür Plädieren das ganze als XML zu machen. die browser können 
gut mit HTML / XML umgehen.
Und es breitet deutlich weniger probleme weil du dich eben nicht ums doppelte 
encoding kümmern musst.

Helmut Hummel hat mit der extension typoscript_render eine extension 
geschrieben die es erlaubt einzelen "typoscript" pfade zu rendern.
https://github.com/helhum/typoscript_rendering

Dokumentation ist leider noch etwas dünn. Aber vielleicht ist das ja im Rahmen 
deiner Lösung interessant.

Gruss chris

-----Ursprüngliche Nachricht-----
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Dr Dieter Porth
Gesendet: Montag, 20. Juli 2015 21:38
An: Benjamin Giesbrecht; German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Ajax handling

Hi Benjamin,

ich render bei meiner Seite die Seiteninhalte über den Type-Num-Weg in ein 
Fluid-Template für ein XML-Konstrukt.
Ich habe dafür in Javascript einen Request-Handler geschrieben, der auch die 
parallele Aktivierung von mehreren AJAX-Request ermöglicht. Bei mir basiert die 
Struktur auf XML-Basis, wobei ich neben dem HTML-Fragment auch die Links zu 
Javascript-Code und CSS-Dateien übergebe und gegebenefalls sogar noch eigene 
Parameter mitübergeben. der Weg hat den Vorteil, dass jedes Content-Objekt als 
autonom begriffen wird. Der Weg hat den Nachteil, dass die Lösung kompliziert 
ist, weil zum Beispiel so manche Klassendefinition aus den Constanten 
einerseits in das zu generierende Javascript und andererseits in den zu 
generierenden HTML-Code übertragen werden muss.
Nachteilig an meiner Lösung ist auch:
1. Die Nummernvergabe für die Ajax-Prozesse ist bislang in den Konstanten er 
folgt und nicht über die Datenbank automatisch definiert wird.
2. Bislang fehlt mir noch eine einfachen Lösung, um auch ein 
JavaScript-Template mit TYPO3 zu bearbeiten. Leider kann man die geschweiften 
Klammern für den Fluid-Inline-Code nicht durch eine alternative Klammerung (zum 
Beispiel «...») ersetzen, so dass das Templating von Javascript mit TYPO3-Fluid 
nicht zum Lese-Horror wird.
3. Mein Lösung enthählt keine Schnittstelle zu AngularJS, weil ich das 
AngularJS bislang nicht hinreichend gut verstanden haben.

Dein Weg ist vielleicht auch optimierungfähig, weil die Wahl des Layouts bei 
identischen Template eher im Template stattfinden sollte Ich schalte 
beispielsweise zwischen mobilen und normalen Layout um, indem ich im Template 
das Layout per Varaible definieren. Das dynamisch gewählte Layout bestimmt 
dann, welche Sections aus dem Template es braucht, um sich selbst zu füllen. Im 
meinem Template definiere ich also einmalig die Sections, die ich in mindestens 
einem Layout brauche.
Statt deiner CASE-Anweisung könntest du im TYPOScript beim FLUIDTEMPLATE nur 
schreiben.
...
varibales
    libFlagDevice = TEXT
    libFlagDevice.data = TSFE:pages|backend_layout  (ungetestet) ...
und im Template selbst
<f:layout name="DefaultLayout{libFlagDevice}" /> und schon hast du deine 
Umschaltung zu den  Layouts DefaultLayout1.html, DefaultLayout2.httml, ...

Unter XML ist beim Rendern vom HTML darauf zu achten, dass man den HTML-Code in 
CDATA verpackt und vorhandenes CDATA maskiert. Ich habe das Problem mit 
Typoscript gelöst, aber der PHP-Weg ist sicher effizienter.

Dieter

P.S. Da du nicht schreibst, welche Bewertungskriterien und welche 
Rahmenbedingungen du zugrunde legst, wird dir wohl keiner raten können, was der 
beste Weg ist.  Vielleicht ist ja auch der beste Weg, die Seite vom Javascript 
generieren zu lassen und nur die rohen Daten zu übergeben.


Am 20.7.2015 um 15:19 schrieb Benjamin Giesbrecht:
> Hei Chris,
>
> Hab mir noch gedacht dass ich einen Denkfehler mache.
> Ich möchte eine Art Ajax Protokoll erstellen. Mit anderen Worten ein 
> JSON Array welches ein Konfigurations-Teil und ein Nutzdaten-Teil hat.
> Dieses Array könnte man in einem Fluid-Template abfüllen und dem 
> JS-Ajax-Handler ausliefern. Mit dem Konfigurations-Teil könnte man dem 
> Ajax-Handler zum Beispiel mitteilen wo und auf welche Art und Weise er 
> den Nutzdaten-Teil (HTML) platzieren soll.
>
> Mein Ansatz ist so dass ich das JSON Array in einem Fluid-Template, 
> resp. Layout zusammenbaue und dann den Nutzdatenteil durch eine 
> json_encode Funktion jage. Das scheint aber offensichtlich nicht ganz 
> zu funktionieren.
> Hast du eine Idee wie man das am besten umsetzen könnte? Oder macht es 
> mehr Sinn solche Daten mit dem Link welcher den Ajax-Handler aufruft 
> zu übergeben?
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


--
Dr. Dieter Porth -
Mein kleines TYPO3-Labor: http://www.mobger.de/

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

Antwort per Email an