[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