What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
It is sometimes desirable or even necessary to have Smarty ignore sections it would otherwise parse. A classic example is embedding Javascript or CSS code in a template. The problem arises as those languages use the { and } characters which are also the default delimiters for Smarty.
The simplest thing is to avoid the situation altogether by separating your Javascript and CSS code into their own files and then using standard HTML methods to access them.
Including literal content is possible using
{literal}..{/literal}
blocks.
Similar to HTML entity usage, you can use {ldelim}
,{rdelim}
or
{$smarty.ldelim}
to display the current delimiters.
It is often convenient to simply change Smarty's
$left_delimiter
and
$right_delimiter
.
Example 3.8. changing delimiters example
<?php $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; $smarty->assign('foo', 'bar'); $smarty->assign('name', 'Albert'); $smarty->display('example.tpl'); ?>
Where the template is:
Welcome <!--{$name}--> to Smarty <script language="javascript"> var foo = <!--{$foo}-->; function dosomething() { alert("foo is " + foo); } dosomething(); </script>