Smarty mode
Mode for Smarty version 2 or 3, which allows for custom delimiter tags.
Several configuration parameters are supported:
leftDelimiter
andrightDelimiter
, which should be strings that determine where the Smarty syntax starts and ends.version
, which should be 2 or 3.baseMode
, which can be a mode spec like"text/html"
to set a different background mode.
MIME types defined: text/x-smarty
Smarty 2, custom delimiters
Smarty 3
26
1
Nested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.
2
3
<script>
4
function test() {
5
console.log("Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode.");
6
}
7
</script>
8
9
{assign var=foo value=[1,2,3]}
10
{assign var=foo value=['y'=>'yellow','b'=>'blue']}
11
{assign var=foo value=[1,[9,8],3]}
12
13
{$foo=$bar+2} {* a comment *}
14
{$foo.bar=1} {* another comment *}
15
{$foo = myfunct(($x+$y)*3)}
16
{$foo = strlen($bar)}
17
{$foo.bar.baz=1}, {$foo[]=1}
18
19
Smarty "dot" syntax (note: embedded {} are used to address ambiguities):
20
21
{$foo.a.b.c} => $foo['a']['b']['c']
22
{$foo.a.$b.c} => $foo['a'][$b]['c']
23
{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c']
24
{$foo.a.{$b.c}} => $foo['a'][$b['c']]
25
26
{$object->method1($x)->method2($y)}