##// END OF EJS Templates
old style: make settings box expand to contain floating content and show menu nicely...
old style: make settings box expand to contain floating content and show menu nicely The floating of the panes is hardcoded, so we also hardcode the necessary overflow auto.

File last commit:

r4029:c9bcfe2d default
r4153:9af9953a rhodecode-2.2.5-gpl
Show More
index.html
126 lines | 3.4 KiB | text/html | HtmlLexer
added codemirror edit mode with autodetection
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>
codecleaner
r4029 <h3>Default settings (Smarty 2, <b>{</b> and <b>}</b> delimiters)</h3>
added codemirror edit mode with autodetection
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 />
codecleaner
r4029 <h3>Smarty 2, custom delimiters</h3>
added codemirror edit mode with autodetection
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>
codecleaner
r4029 <br />
added codemirror edit mode with autodetection
r4026
codecleaner
r4029 <h3>Smarty 3</h3>
added codemirror edit mode with autodetection
r4026
codecleaner
r4029 <textarea id="code3" name="code3">
added codemirror edit mode with autodetection
r4026 Nested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.
<script>
function test() {
codecleaner
r4029 console.log("Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode.");
added codemirror edit mode with autodetection
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>
codecleaner
r4029 <script>
var editor = CodeMirror.fromTextArea(document.getElementById("code3"), {
lineNumbers: true,
mode: "smarty",
smartyVersion: 3
});
</script>
added codemirror edit mode with autodetection
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>