Funções de Templatevoid smarty_function_namearray $paramsobject &$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().
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}.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);
}
?>