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']); } ?>