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