aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/smarty/smarty/docs/programmers/plugins/plugins-functions.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/smarty/smarty/docs/programmers/plugins/plugins-functions.md')
-rw-r--r--vendor/smarty/smarty/docs/programmers/plugins/plugins-functions.md94
1 files changed, 94 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/docs/programmers/plugins/plugins-functions.md b/vendor/smarty/smarty/docs/programmers/plugins/plugins-functions.md
new file mode 100644
index 000000000..067b93826
--- /dev/null
+++ b/vendor/smarty/smarty/docs/programmers/plugins/plugins-functions.md
@@ -0,0 +1,94 @@
+Template Functions {#plugins.functions}
+==================
+
+void
+
+smarty\_function\_
+
+name
+
+array
+
+\$params
+
+object
+
+\$template
+
+All [attributes](#language.syntax.attributes) passed to template
+functions from the template are contained in the `$params` as an
+associative array.
+
+The output (return value) of the function will be substituted in place
+of the function tag in the template, eg the
+[`{fetch}`](#language.function.fetch) function. Alternatively, the
+function can simply perform some other task without any output, eg the
+[`{assign}`](#language.function.assign) function.
+
+If the function needs to assign some variables to the template or use
+some other Smarty-provided functionality, it can use the supplied
+`$template` object to do so eg `$template->foo()`.
+
+
+ <?php
+ /*
+ * Smarty plugin
+ * -------------------------------------------------------------
+ * File: function.eightball.php
+ * Type: function
+ * Name: eightball
+ * Purpose: outputs a random magic answer
+ * -------------------------------------------------------------
+ */
+ function smarty_function_eightball($params, Smarty_Internal_Template $template)
+ {
+ $answers = array('Yes',
+ 'No',
+ 'No way',
+ 'Outlook not so good',
+ 'Ask again soon',
+ 'Maybe in your reality');
+
+ $result = array_rand($answers);
+ return $answers[$result];
+ }
+ ?>
+
+which can be used in the template as:
+
+ Question: Will we ever have time travel?
+ Answer: {eightball}.
+
+
+
+ <?php
+ /*
+ * Smarty plugin
+ * -------------------------------------------------------------
+ * File: function.assign.php
+ * Type: function
+ * Name: assign
+ * Purpose: assign a value to a template variable
+ * -------------------------------------------------------------
+ */
+ function smarty_function_assign($params, Smarty_Internal_Template $template)
+ {
+ if (empty($params['var'])) {
+ trigger_error("assign: missing 'var' parameter");
+ return;
+ }
+
+ if (!in_array('value', array_keys($params))) {
+ trigger_error("assign: missing 'value' parameter");
+ return;
+ }
+
+ $template->assign($params['var'], $params['value']);
+
+ }
+ ?>
+
+
+
+See also: [`registerPlugin()`](#api.register.plugin),
+[`unregisterPlugin()`](#api.unregister.plugin).