What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
void smarty_function_name( |
$params, | |
&$smarty) ; |
array $params
;object &$smarty
;
Todos los atributos pasados para las funciones de template a partir
del template estan contenidas en $params
como
un arreglo asociativo.
La salida(valor de retorno) de la función será substituida en
el lugar de la etiqueta de la función en el template (la función
fetch
, por ejemplo).
Alternativamente, la función puede simplemente ejecutar alguna
otra tarea sin tener alguna salida (la función assign
).
Si la función necesita pasar valores a algunas variables del template
o utilizar alguna otra funcionalidad del Smarty, esta puede usar el
objeto $smarty
alimentandolo para hacer eso.
Vea tambien: register_function(), unregister_function().
Example 16.1. Función de plugin con salida
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: function.eightball.php * Type: function * Name: eightball * Purpose: outputs a random magic answer * ------------------------------------------------------------- */ function smarty_function_eightball($params, &$smarty) { $answers = array('Yes', 'No', 'No way', 'Outlook not so good', 'Ask again soon', 'Maybe in your reality'); $result = array_rand($answers); return $answers[$result]; } ?>
que puede ser usada en el template de la siguiente forma:
Question: Will we ever have time travel? Answer: {eightball}.
Example 16.2. Función de plugin sin salida
<?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) { if (empty($params['var'])) { $smarty->trigger_error("assign: missing 'var' parameter"); return; } if (!in_array('value', array_keys($params))) { $smarty->trigger_error("assign: missing 'value' parameter"); return; } $smarty->assign($params['var'], $params['value']); } ?>