This is an old revision of the document!
On occasion, it may be appropriate to add a block of JavaScript code to one of your template files. One of the most common uses of this is when adding Google Analytics to a site. There is one important caveat to be aware of: both JavaScript and SMARTY have different interpretations of the left-curly-brace character '{' – if you try to insert JavaScript code containing {curly braces} into a SMARTY template file, SMARTY will attempt to interpret the braces as its own tags, which will usually break the JavaScript code.
There are a couple of ways around this. You can either replace all of the left-curly-braces in your Javascript with the {ldelim} tag, or you can simply wrap the entire javascript code in {literal}{/literal} SMARTY tags.
<tip c n>Google Analytics Tip: If you are trying to use Google Analytics: Edit the foot.tpl template file in the admin panel under Design > Manager. Click on the <..> Source Code Editor tab. Right before the end </body> tag, copy/paste in the Google Analytics code as provided by Google Analytics. Right before it, add {literal}, and right after the code you pasted in, add {/literal}. See below for examples of what it might look like when you are done.</tip>
We'll show the oft-offending piece of Google Analytics code here, by way of example. Google generally supplies the code like this:
<script type="text/javascript"> try { var pageTracker = _gat._getTracker("your_tracker_number_here"); pageTracker._trackPageview(); } catch(err) {} }</script>
To properly use that code snippet in a SMARTY template, you'll want to do something like this:
{literal} <script type="text/javascript"> try { var pageTracker = _gat._getTracker("your_tracker_number_here"); pageTracker._trackPageview(); } catch(err) {} }</script> {/literal}
Alternatively, the following will work just as well:
<script type="text/javascript"> try {ldelim} var pageTracker = _gat._getTracker("your_tracker_number_here"); pageTracker._trackPageview(); } catch(err) {ldelim} } }</script>