Hallo,
wir haben eine Facebook-Werbeanzeige geschaltet, und hierzu wollen wir das sog. „Zählpixel“ von Facebook integrieren. So sieht der allgemeine Teil aus:
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version=‚2.0‘;n.queue=;t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,‚script‘,‚https://connect.facebook.net/en_US/fbevents.js‘);
fbq(‚init‘, ‚XXXXXXXXXXXXXXXXXXXX‘); // Insert your pixel ID here.
fbq(‚track‘, ‚PageView‘);
fbq(‚track‘, ‚Purchase‘);https://www.facebook.com/tr?id=XXXXXXXXXXXXXXXXXXXX&ev=PageView&noscript=1";
/>Dieses Script soll im Head der Seite platziert werden. Wunderbar, hierfür steht ja in der fontend/index/header.tpl der Block frontend_index_header_javascript_tracking direkt vor dem schießenden Head-Tag zu Verfügung. Also rein damit, Theme neu kompiliert und zack:
Jetzt bin ich ziemlich ratlos. Wie kann denn ein (meinetwegen auch fehlerhaftes) Stück Javascript dafür sorgen, dass die serverseitige Verarbeitung komplett aussteigt?
Hallo,
das liegt daran, das nunmal das Zeichen { und } für Smarty reserviert ist und du das nicht einfach so nutzen kannst, siehe: {literal} | Smarty .
Setze also am besten um den JavaScipt einfach folgendes drum herum:
{literal}
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','<a href="https://connect.facebook.net/en_US/fbevents.js'"; rel="nofollow" target="_blank">https://connect.facebook.net/en_US/fbevents.js'</a>;);
fbq('init', 'XXXXXXXXXXXXXXXXXXXX'); // Insert your pixel ID here.
fbq('track', 'PageView');
fbq('track', 'Purchase');
https://www.facebook.com/tr?id=XXXXXXXXXXXXXXXXXXXX&ev=PageView&noscript=1";
/>
{/literal}
Man sollte so und so wenn möglich versuchen, JavaScript nicht inline einzubinden, um der Performance des Shops nicht zu schaden.
Beste Grüße
Sebastian