[TYPO3-german] gesucht: Viewhelper um Fluidvariablen in Inline-JavaScript einbauen zu können

Stefan Padberg post at bergische-webschmiede.de
Mon Feb 13 09:03:12 CET 2017


Am 10.02.2017 um 19:40 schrieb Dr. Dieter Porth:
> Hallo Stefan,

>>>>
>>> (...) Mit dem obigen Workaround, der für kleine datenmengen durchaus
>>> gut funktioniert, würde es schnell unübersichtlich werden.
>>>
>> Man kann so auch ganze Javascript-Objekte ablegen.
>>
>> Oder man gibt Fluidvariable als JSON-Objekte aus. Das wäre noch eine
>> Alternative.
>>
> Nein, JavaScript-Objekte kann ich ja gerade nicht direkt konstruieren.
> <script>
> var referenz = {ridForm}; // funktioniert
> 
> var typoJavascriptoPhob = {
>        test: {ridForm}
>    }; // Rohrkrepierer - funktioniert nicht
> <script>

Schreib es so:

var typoJavascripToPhob = {
    test: "{ridForm}"
};



Das geht übrigens auch:

var typo3ObjectArray = [
    <f:for each="{objects}" as="o">
        <![CDATA[{]]>
            uid: "{o.uid}",
            title: "{o.title},
            usw.
        <![CDATA[},]]>
    </f:for>
];

Mit CDATA kannst du alle geschweiften Klammern vor Fluid maskieren.



> Ein JSON-String wäre eine Workaround. Er sollte aber vermieden werden,
> da er sowohl auf Server-Seite wie auf Client-Seite zusätzlichen Aufwand
> erfordert. Mit einem Render-Viewhelper für Script-Code würde man nur
> Serverseitig Aufwand haben.


Mit der PHP-Funktion json_encode habe ich noch keine Lastprobleme
gehabt. Ich habe z.B. damit die gesamten Extension-Settings in eine
Variable gepackt, weil man ja manchmal Probleme hat in Extbase an die
Settings ranzukommen, z.B. bei bestimmten Ajax-Aufrufen oder im Backend.
Für Fluid ist das nur ein String. Und Javascript kann sofort damit arbeiten.

Beste Grüße
Stefan


-- 
Bergische Webschmiede
Dipl.-Ing. Stefan Padberg
TYPO3-Integrator und Webprogrammierer
:: Borner Str. 18 - 42349 Wuppertal
:: +49 202 97648355
:: +49 173 9219845
:: post at bergische-webschmiede.de
:: http://www.bergische-webschmiede.de


More information about the TYPO3-german mailing list