aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md')
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md149
1 files changed, 149 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md
new file mode 100644
index 000000000..3d3615bff
--- /dev/null
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md
@@ -0,0 +1,149 @@
+{assign} {#language.function.assign}
+========
+
+`{assign}` is used for assigning template variables **during the
+execution of a template**.
+
+> **Note**
+>
+> Assignment of variables in-template is essentially placing application
+> logic into the presentation that may be better handled in PHP. Use at
+> your own discretion.
+
+> **Note**
+>
+> See also the [`short-form`](#language.function.shortform.assign)
+> method of assigning template vars.
+
+**Attributes:**
+
+ Attribute Name Type Required Default Description
+ ---------------- -------- ---------- --------- -----------------------------------------------------------------------
+ var string Yes *n/a* The name of the variable being assigned
+ value string Yes *n/a* The value being assigned
+ scope string No *n/a* The scope of the assigned variable: \'parent\',\'root\' or \'global\'
+
+**Option Flags:**
+
+ Name Description
+ --------- -----------------------------------------------------
+ nocache Assigns the variable with the \'nocache\' attribute
+
+
+ {assign var="name" value="Bob"}
+ {assign "name" "Bob"} {* short-hand *}
+
+ The value of $name is {$name}.
+
+
+
+The above example will output:
+
+
+ The value of $name is Bob.
+
+
+
+
+ {assign var="name" value="Bob" nocache}
+ {assign "name" "Bob" nocache} {* short-hand *}
+
+ The value of $name is {$name}.
+
+
+
+The above example will output:
+
+
+ The value of $name is Bob.
+
+
+
+
+ {assign var=running_total value=$running_total+$some_array[$row].some_value}
+
+
+
+Variables assigned in the included template will be seen in the
+including template.
+
+
+ {include file="sub_template.tpl"}
+ ...
+ {* display variable assigned in sub_template *}
+ {$foo}<br>
+ ...
+
+
+
+The template above includes the example `sub_template.tpl` below
+
+
+ ...
+ {* foo will be known also in the including template *}
+ {assign var="foo" value="something" scope=parent}
+ {* bar is assigned only local in the including template *}
+ {assign var="bar" value="value"}
+ ...
+
+You can assign a variable to root of the current root tree. The variable
+is seen by all templates using the same root tree.
+
+
+ {assign var=foo value="bar" scope="root"}
+
+
+
+A global variable is seen by all templates.
+
+
+ {assign var=foo value="bar" scope="global"}
+ {assign "foo" "bar" scope="global"} {* short-hand *}
+
+
+
+To access `{assign}` variables from a php script use
+[`getTemplateVars()`](#api.get.template.vars). Here\'s the template that
+creates the variable `$foo`.
+
+
+ {assign var="foo" value="Smarty"}
+
+The template variables are only available after/during template
+execution as in the following script.
+
+
+ <?php
+
+ // this will output nothing as the template has not been executed
+ echo $smarty->getTemplateVars('foo');
+
+ // fetch the template to a variable
+ $whole_page = $smarty->fetch('index.tpl');
+
+ // this will output 'smarty' as the template has been executed
+ echo $smarty->getTemplateVars('foo');
+
+ $smarty->assign('foo','Even smarter');
+
+ // this will output 'Even smarter'
+ echo $smarty->getTemplateVars('foo');
+
+ ?>
+
+The following functions can also *optionally* assign template variables.
+
+[`{capture}`](#language.function.capture),
+[`{include}`](#language.function.include),
+[`{include_php}`](#language.function.include.php),
+[`{insert}`](#language.function.insert),
+[`{counter}`](#language.function.counter),
+[`{cycle}`](#language.function.cycle),
+[`{eval}`](#language.function.eval),
+[`{fetch}`](#language.function.fetch),
+[`{math}`](#language.function.math),
+[`{textformat}`](#language.function.textformat)
+
+See also [`{$var=...}`](#language.function.shortform.assign),
+[`assign()`](#api.assign) and
+[`getTemplateVars()`](#api.get.template.vars).