Ich teste gerade das Real-Time-Tracking von OneStat.com in einem JTL-Shop. Bei der Einbindung des Tracking-Codes (JavaScript) ist mir ein Flüchtigkeits-Fehler unterlaufen. Die im Titel genannte gekürzte Fehlermeldung findet sich auf der jeweiligen Seite auf der das OneStat-Script einbunden wird. Ich habe das ganze fix unter [JTL-SHOP-TEMPLATE-PATH]/tpl_inc/footer.tpl eingefügt, und bekam den folgenden Fehlercode als Antwort:
Fatal error: Smarty error: [in tpl_inc/footer.tpl line 56]: syntax
error: unrecognized tag 'var' (Smarty_Compiler.class.php,
line 590) in [...]
Das Problem ist der von OneStat gelieferte JavaScript-Code und die im JTL-Shop verwendete Smarty-Template-Engine. Genauer: die geschwungenen Klammern um den Funktionsrumpf des JavaScript Snipets verursachen den Fehler.
Um das zu vermeiden, bietet Smarty die Funktion literal:
{literal}-Tags erlauben es, einen Block wörtlich auszugeben, d.h. von der Interpretation durch Smarty auszuschliessen. Dies ist vor allem für Javascript- oder andere Blöcke nützlich, die geschwungene Klammern verwenden. Alles was zwischen den {literal}{/literal} Tags steht, wird direkt angezeigt.
Also den JavaScript-Code mit literal umschließen, und der Fehler sollte verschwinden:
<!--ONESTAT SCRIPTCODE START-->
{literal}
<script type="text/javascript">
<!--
...
OneStat_Pageview();
//-->
</script>
{/literal}
<noscript>
...
Mai 22nd, 2008 at 10:42 am
Vielen Dank für den {literal}-Tipp!
Oktober 14th, 2008 at 11:43 am
OH MAN!!! DANKEEEEEEEEEEE
November 24th, 2008 at 12:09 am
sauber, ebenfalls vielen dank von mir – hab mir die zähne ausgebissen an dem stuff ;-) der {literal}-tipp war goldwert !!
April 28th, 2009 at 3:37 pm
Danke :) die kleinen sachen sind meistens doch die gemeinsten :D
Juni 12th, 2009 at 2:18 pm
Super! Danke für den Tipp!!! :)
Juni 27th, 2009 at 11:59 am
Man lernt nie aus ;-) Smarty hat doch so seine ganz besonderen Tücken! Danke für den {literal} Tipp, der läßt sich ja bei allem einsetzen, was mit XT-Commerce Shops und Javascript zu tun hat!
September 19th, 2009 at 1:32 am
hallo,
nach ca. 10 stunden suchen/testen wie ich den fehler nun wech bekomme, kann ich nur danken das ich diesen beitrag gefunden habe. eigentlich sehr einfach wen man den {literal} trick kennt :-) … ansonsten …. arschkarte und durchdrehen ….
besten dank für diesen beitrag..
November 3rd, 2009 at 8:44 pm
Vielen Dank für den Tip
Dezember 17th, 2009 at 1:23 am
Vielen Dank – der Tipp ist Gold wert!
Januar 6th, 2010 at 10:39 am
Genialer Tip. Vielen Dank! Hat mir eine Menge Zeit erspart!
März 17th, 2010 at 12:27 am
Vielen Dank!
Hatte das problem bei Lansuit v3 mit Google Tracking Code. Nach deinem Trick läuft alles nun wunderbar.
August 17th, 2010 at 9:58 pm
[…] wie man es beheben kann. Bei Problemen mit "Smarty" und "JQuery" hier klicken: Rettung Gru
April 21st, 2011 at 6:40 am
Vielen Dank, genau das was ich gesucht habe!
Mai 31st, 2011 at 1:20 pm
Wow…!
Auf einer Seite hat es echt was gebracht, ich hatte den Fehler in einer Bestätigungs eMail, die der Kunde nach einer Bestellung im Shop eines Freundes erhalten sollte. Der Kunde sah nach der Bestellung eine weiße Seite mit der Fehlermeldung:
Fatal error: Smarty error: [in xtc4/mail/german/order_mail.html line 123]: syntax error: unrecognized tag: searchshield.init(document); (Smarty_Compiler.class.php, line 446) in /home/myfriend-online-de/htdocs/shop/includes/classes/Smarty_2.6.26/Smarty.class.php on line 1095
und die Mail ging nur fehlerhaft raus Artikelauflistung fehlte).
Jetzt ist die Fehlermeldung weg, aber die eMail enthält nun gar keinen Inhalt mehr. Ist einfach eine weiße Seite (wenn sie als HTML versendet wird).
Wie kann ich das nun beheben?
Irgendwie liegt der Fehler beim SearchShield Eintrag, oder so?
Weiß jemand was?
LG,
Maja.
Juni 19th, 2011 at 11:35 am
Hallo Maja,
also ohne das Problem jetzt näher zu erkennen scheint es doch mit dem von Dir genannten Skriptblock zu tun zu haben. Hast Du den gesamten Javacript Bereich mit einem {literal}{/literal} umschlossen?
Juli 15th, 2011 at 1:05 am
perfekter tipp. schnell gefunden, schnelle problemlösung!
vielen, herzlichen dank!
Juli 15th, 2011 at 1:06 am
ps: es heißt übrigens „freigeschaltet“, nicht „freigeschalten“… ;-)