CodeMirror: Smarty mode

Default settings (Smarty 2, { and } delimiters)

{extends file="parent.tpl"}
1
{extends file="parent.tpl"}
2
{include file="template.tpl"}
3
 
4
{* some example Smarty content *}
5
{if isset($name) && $name == 'Blog'}
6
  This is a {$var}.
7
  {$integer = 451}, {$array[] = "a"}, {$stringvar = "string"}
8
  {assign var='bob' value=$var.prop}
9
{elseif $name == $foo}
10
  {function name=menu level=0}
11
    {foreach $data as $entry}
12
      {if is_array($entry)}
13
        - {$entry@key}
14
        {menu data=$entry level=$level+1}
15
      {else}
16
        {$entry}
17
      {/if}
18
    {/foreach}
19
  {/function}
20
{/if}
 

Smarty 2, custom delimiters

{--extends file="parent.tpl"--}
1
{--extends file="parent.tpl"--}
2
{--include file="template.tpl"--}
3
 
4
{--* some example Smarty content *--}
5
{--if isset($name) && $name == 'Blog'--}
6
  This is a {--$var--}.
7
  {--$integer = 451--}, {--$array[] = "a"--}, {--$stringvar = "string"--}
8
  {--assign var='bob' value=$var.prop--}
9
{--elseif $name == $foo--}
10
  {--function name=menu level=0--}
11
    {--foreach $data as $entry--}
12
      {--if is_array($entry)--}
13
        - {--$entry@key--}
14
        {--menu data=$entry level=$level+1--}
15
      {--else--}
16
        {--$entry--}
17
      {--/if--}
18
    {--/foreach--}
19
  {--/function--}
20
{--/if--}
 

Smarty 3

Nested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.
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)}
 

A plain text/Smarty version 2 or 3 mode, which allows for custom delimiter tags.

MIME types defined: text/x-smarty