Zum Inhalt springen

JavaScript mit Fluid rendern

Erstellt am 7. Oktober 2010 · 3 Antworten · letzte Antwort am 21. September 2014

Tags: Frage

koalabruder ·

Hallo,
ich habe ein Template mit Javascript. Wie platziere ich am besten Parameter in dem JavaScriptabschnitt?

<script type="text/javascript">
var v = {
prop: {tplVariable}
}
</script>

Im Beispiel soll der Platzhalter {tplVariable} von fluid gegen ['hase','igel'] ausgetauscht werden.

Danke

pgnonick ·

Ja sollte so gehen.

und folgendes müsste in deiner PHP Klasse stehen

$string = "['hase','igel']";
$this->view->assign('tplVariable', $string);
serverTimeout ·

Mit CDATA Comments kannst du das IDE Highlighting weiterhin nutzen.
Dafür einfach alle Teile mit geschweiften Klammern, die nicht vom Fluid stammen mit einem

 /*<![CDATA[*/

 /*]]>*/

wrappen.

Hier ein Beispiel:

<script type="text/javascript">
    /*<![CDATA[*/
    jQuery(document).ready(function() {
        jQuery("body").on("click", ".open-gallery", function(ev) {
    /*]]>*/
            ev.preventDefault();
            jQuery('#page{newsCount.cycle}').find('.gallery').eq(0).trigger('click');
    /*<![CDATA[*/
        });
    });
    /*]]>*/
</script>

Nachteil daran, das die Kommentare (leer natürlich) mit gerendert werden. Was aber nicht wirklich schlimm ist ( /**/ )

Best Practise ist sich hier generell zu fragen muss das JS Inline stehen. Die Antwort sollte nur Ja lauten wenn Teile/Informationen der aktuellen Instanz benötigt werden, wie in meinem Beispiel die Id im Code benötigt wird.

P.S. Problematisch sind nur geschweifte Klammern für Fluid

Thomas