Funciones de Template

void smarty_function_name (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().

Ejemplo 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}.

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