void smarty_function_name( |
$params, | |
&$smarty) ; |
array $params
;object &$smarty
;
Todos os atributos passados para as funções de template a
partir do template estão contidas em
$params
como um array associativo. Ou acessa esses valores
diretamente i.e $params['start']
ou usa
extract($params)
para
importá-los para dentro da tabela símbolo.
A saída (valor de retorno) da função será substituída no lugar da tag da função no template
(a função fetch
, por exemplo). Alternativamente, a função pode simplesmente executar
alguma outra tarefa sem ter alguma saída
(a função assign
).
Se a função precisa passar valores a algumas variáveis para o template ou utilizar alguma outra funcionalidade
fornecida com a Smarty, ela pode usar
o objeto $smarty
fornecido para fazer isso.
Veja também: register_function(), unregister_function().
Example 16.1. função de plugin com saída
<?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 pode ser usada no template da seguinte forma:
Pergunta: Nós sempre teremos tempo para viajar? Resposta: {eightball}.
Example 16.2. função de plugin sem saída
<?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) { extract($params); if (empty($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($var, $value); } ?>