aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md')
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md
new file mode 100644
index 000000000..a62e7de89
--- /dev/null
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md
@@ -0,0 +1,84 @@
+Escaping Smarty Parsing {#language.escaping}
+=======================
+
+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](#language.function.ldelim) for Smarty.
+
+> **Note**
+>
+> A good practice for avoiding escapement altogether is by separating
+> your Javascript/CSS into their own files and use standard HTML methods
+> to access them. This will also take advantage of browser script
+> caching. When you need to embed Smarty variables/functions into your
+> Javascript/CSS, then the following applies.
+
+In Smarty templates, the { and } braces will be ignored so long as they
+are surrounded by white space. This behavior can be disabled by setting
+the Smarty class variable [`$auto_literal`](#variable.auto.literal) to
+false.
+
+
+ <script>
+ // the following braces are ignored by Smarty
+ // since they are surrounded by whitespace
+ function foobar {
+ alert('foobar!');
+ }
+ // this one will need literal escapement
+ {literal}
+ function bazzy {alert('foobar!');}
+ {/literal}
+ </script>
+
+
+
+[`{literal}..{/literal}`](#language.function.literal) blocks are used
+for escaping blocks of template logic. You can also escape the braces
+individually with
+[`{ldelim}`](#language.function.ldelim),[`{rdelim}`](#language.function.ldelim)
+tags or
+[`{$smarty.ldelim}`,`{$smarty.rdelim}`](#language.variables.smarty.ldelim)
+variables.
+
+Smarty\'s default delimiters { and } cleanly represent presentational
+content. However if another set of delimiters suit your needs better,
+you can change them with Smarty\'s
+[`$left_delimiter`](#variable.left.delimiter) and
+[`$right_delimiter`](#variable.right.delimiter) values.
+
+> **Note**
+>
+> Changing delimiters affects ALL template syntax and escapement. Be
+> sure to clear out cache and compiled files if you decide to change
+> them.
+
+
+ <?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>
+
+