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

_doc _doc at freenet.de
Wed Jul 3 08:16:36 CEST 2019


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 g4-lisz at tonarchiv.ch:

> 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 g4-lisz at tonarchiv.ch:
>>>
>>> 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
>>> TYPO3-german at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> 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)



More information about the TYPO3-german mailing list