[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TYPO3-german] V9.5 Fluid kommt mit Inline-JS nicht mehr klar.



Hallo Till,

sorry, habe deinen Post erst jetzt gelesen. Mich würde interessieren, was du genau als JavaScript ausgeben möchtest. Mit dem CData-Viewhelper habe ich noch keine Erfahrungen gesammelt. Deine Ausführungen deuten darauf hin, dass ein übergeordnetes Fluid-Tag für die Die Ausgabe deines CDATAs verantwortlich ist.
Ich arbeite gerade an einer Extension, bei welcher ich innerhalb von
JavaScript Fluid-Variablen nutzen muss. Nach meinen früheren Erfahrung
(TYPO3 7.6 und 8.7 sind es insbesondere die geschweiften Klammern, die
Probleme verursachen. Leider kann man in TYPO3 die Klammerung für die
Fluid-Objekte nicht umkonfigurieren z.B. zu « (Alt-0171) und »
(Alt-0187) für { und }.  Dann könnte man leicht innerhalb von
Inline-JavaScript Fluid-Inline-Code verwenden und ein Syntaxhighlighting
unter einer guten IDE wäre vermutlich auch leicht möglich. Angesichts
der zunehmenden Bedeutung von Custom-Elements
(https://www.html5rocks.com/en/tutorials/webcomponents/customelements/)
gehe ich davon aus, dass in Zukunft wieder vermehrt Inline-JS zum
Einsatz kommen wird. Ein Fluid, dass sich eindeutig gegen HTML und
JavaScript-Code per Syntaxhighlighting abgrenzt, wäre wünschenswert.
Da das nicht funktioniert, nutze ich folgenden Workaround:
1. Ich lagere JavaScript in eigene Partials aus. (Übersichtlicher)
2. Der JavaScriptCode wird mit einem F:Alias umschlossen.

<f:alias map="{ begin: '{', end: '}' }"> </f:alias>

3. Jede geschweifte Klammer im JavaScript wird durch {begin} bzw. {end} ersetzt.
Der Workaround hat verschiedene Nachteile. Insbesondere die Lesbarkeit
von Code ist ein Manko.
Mit besten Grüßen

        Dieter


Am 28.06.2019 um 18:45 schrieb [email protected]:

Hi Birgit,

ich hab's genau nach dieser Anleitung probiert, sogar testweise mit dem JS aus dem Beispiel...
Mit deinem Vorschlag wird auch einfach nichts anstelle des Skripts
ausgegeben.
Nach weiterem Testen habe ich festgestellt, dass TYPO3 wohl jetzt
davon ausgeht, dass der Parser schlau genug ist, um Inline-JS zu als
solches zu erkennen. Also auch ohne spezielles "Escaping".
Mit de JS aus dem Beispiel klappt das tatsächlich. Aber mein JS ist
wohl zu kompliziert - da kriege ich dann einen PHP-Fehler: Wrong
argument for foreach (sinngemäss)..
Wäre ja schon schön, wenn man wie früher einfach darauf vertrauen
könnte, dass der Parser alles zwischen <![CDATA[ ... ]]>  in Ruhe lässt.
Viele Grüße,
Till

On 28.06.19 11:03, Birgit wrote:
Hallo Till,

untested: hast du schon
<f:format.raw>  <![CDATA
ausprobiert?

Ansonsten hier eine Doku:
https://docs.typo3.org/m/typo3/guide-extbasefluid/master/en-us/Fluid/ThingsToKnow/JsAndInline.html

viele Grüße
Birgit



Am 28.06.2019 um 03:01 schrieb [email protected]:

Hallo Leute,

wenn ich im Fluid-Template einer Extension einen Block mit <![CDATA[ ... ]]> einschliesse, wird dieser gar nicht gerendert.
Wenn ich hingegen den Viewhelper <f:format.cdata> verwende, wird das
<![CDATA[ ... ]]> im Frontend ausgegeben, was auch nicht so ganz im
Sinne des Erfinders ist...
Sieht mir nach einem Bug aus. Im Moment scheint es nicht mehr
möglich zu sein, einen Codeblock mit <![CDATA[ ... ]]> auszugeben.
Hat sonst noch jemand damit unter V9.5 Erfahrungen gesammelt?

Grüße,
Till

_______________________________________________
TYPO3-german mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
--
---

Dr. Dieter Porth
Grünenstraße 23
D-28199 Bremen
Germany

+(049) 421 / 51 48 35 48
+(049) 160 / 99 18 06 88 (abends/ after 18:00)

_______________________________________________
TYPO3-german mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german