index.html
126 lines
| 3.4 KiB
| text/html
|
HtmlLexer
r4026 | <!doctype html> | |||
<html> | ||||
<head> | ||||
<meta charset="utf-8"> | ||||
<title>CodeMirror: Smarty mode</title> | ||||
<link rel="stylesheet" href="../../lib/codemirror.css"> | ||||
<script src="../../lib/codemirror.js"></script> | ||||
<script src="smarty.js"></script> | ||||
<style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> | ||||
<link rel="stylesheet" href="../../doc/docs.css"> | ||||
</head> | ||||
<body> | ||||
<h1>CodeMirror: Smarty mode</h1> | ||||
r4029 | <h3>Default settings (Smarty 2, <b>{</b> and <b>}</b> delimiters)</h3> | |||
r4026 | <form><textarea id="code" name="code"> | |||
{extends file="parent.tpl"} | ||||
{include file="template.tpl"} | ||||
{* some example Smarty content *} | ||||
{if isset($name) && $name == 'Blog'} | ||||
This is a {$var}. | ||||
{$integer = 451}, {$array[] = "a"}, {$stringvar = "string"} | ||||
{assign var='bob' value=$var.prop} | ||||
{elseif $name == $foo} | ||||
{function name=menu level=0} | ||||
{foreach $data as $entry} | ||||
{if is_array($entry)} | ||||
- {$entry@key} | ||||
{menu data=$entry level=$level+1} | ||||
{else} | ||||
{$entry} | ||||
{/if} | ||||
{/foreach} | ||||
{/function} | ||||
{/if}</textarea></form> | ||||
<script> | ||||
var editor = CodeMirror.fromTextArea(document.getElementById("code"), { | ||||
lineNumbers: true, | ||||
mode: "smarty" | ||||
}); | ||||
</script> | ||||
<br /> | ||||
r4029 | <h3>Smarty 2, custom delimiters</h3> | |||
r4026 | <form><textarea id="code2" name="code2"> | |||
{--extends file="parent.tpl"--} | ||||
{--include file="template.tpl"--} | ||||
{--* some example Smarty content *--} | ||||
{--if isset($name) && $name == 'Blog'--} | ||||
This is a {--$var--}. | ||||
{--$integer = 451--}, {--$array[] = "a"--}, {--$stringvar = "string"--} | ||||
{--assign var='bob' value=$var.prop--} | ||||
{--elseif $name == $foo--} | ||||
{--function name=menu level=0--} | ||||
{--foreach $data as $entry--} | ||||
{--if is_array($entry)--} | ||||
- {--$entry@key--} | ||||
{--menu data=$entry level=$level+1--} | ||||
{--else--} | ||||
{--$entry--} | ||||
{--/if--} | ||||
{--/foreach--} | ||||
{--/function--} | ||||
{--/if--}</textarea></form> | ||||
<script> | ||||
var editor = CodeMirror.fromTextArea(document.getElementById("code2"), { | ||||
lineNumbers: true, | ||||
mode: { | ||||
name: "smarty", | ||||
leftDelimiter: "{--", | ||||
rightDelimiter: "--}" | ||||
} | ||||
}); | ||||
</script> | ||||
r4029 | <br /> | |||
r4026 | ||||
r4029 | <h3>Smarty 3</h3> | |||
r4026 | ||||
r4029 | <textarea id="code3" name="code3"> | |||
r4026 | Nested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3. | |||
<script> | ||||
function test() { | ||||
r4029 | console.log("Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode."); | |||
r4026 | } | |||
</script> | ||||
{assign var=foo value=[1,2,3]} | ||||
{assign var=foo value=['y'=>'yellow','b'=>'blue']} | ||||
{assign var=foo value=[1,[9,8],3]} | ||||
{$foo=$bar+2} {* a comment *} | ||||
{$foo.bar=1} {* another comment *} | ||||
{$foo = myfunct(($x+$y)*3)} | ||||
{$foo = strlen($bar)} | ||||
{$foo.bar.baz=1}, {$foo[]=1} | ||||
Smarty "dot" syntax (note: embedded {} are used to address ambiguities): | ||||
{$foo.a.b.c} => $foo['a']['b']['c'] | ||||
{$foo.a.$b.c} => $foo['a'][$b]['c'] | ||||
{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c'] | ||||
{$foo.a.{$b.c}} => $foo['a'][$b['c']] | ||||
{$object->method1($x)->method2($y)}</textarea> | ||||
r4029 | <script> | |||
var editor = CodeMirror.fromTextArea(document.getElementById("code3"), { | ||||
lineNumbers: true, | ||||
mode: "smarty", | ||||
smartyVersion: 3 | ||||
}); | ||||
</script> | ||||
r4026 | ||||
<p>A plain text/Smarty version 2 or 3 mode, which allows for custom delimiter tags.</p> | ||||
<p><strong>MIME types defined:</strong> <code>text/x-smarty</code></p> | ||||
</body> | ||||
</html> | ||||