Capítulo 5. Modificadores de variáveis
Modificadores de variáveis podem ser aplicados a variáveis, funções personalizadas
ou strings. Para aplicar um modificador, especifique o valor seguido por
|(pipe) e o nome do modificador. Um modificador aceita
parâmetros adicionais que afetam o seu comportamento. Estes parâmetros vem após
o nome do modificador e são separados por : (dois pontos).
Exemplo 5-1. Exemplo de modificador {* Faz o título ficar com letras maiúsculas *}
<h2>{$titulo|upper}</h2>
{* Faz com que $topico use somente 40 caracteres, e coloca ... no fim da frase *}
Tópico: {$topico|truncate:40:"..."}
{* transforma a data em um formato legível *}
{"agora"|date_format:"%Y/%m/%d"}
{* aplica um modificador à uma função personalizada *}
{mailto|upper address="eu@dominio.dom"} |
|
Se você aplicar um modificador à uma matriz ao invés de aplicar ao valor de uma variável,
o modificador vai ser aplicado à cada valor da matriz especificada. Se você quer que o modificador
use a matriz inteira como um valor, você deve colocar o símbolo @ antes do
nome do modificador, como a seguir: {$tituloArtigo|@count}
(isto irá mostrar o número de elementos na matriz $tituloArtigo).
Modificadores podem ser carregados automaticamente à partir do seu $plugins_dir (veja:
Nomes sugeridos) ou podem ser
registrados explicitamente (veja: register_modifier). Adicionalmente,
todas as funções php podem ser utiliadas como modificadores implicitamente. (O
exemplo do @count acima usa a função count do php e não
um modificador do Smarty). Usar funções do php como modificadores tem dois
pequenos problemas: Primeiro: às vezes a ordem dos parâmetros da função
não é a desejada ({"%2.f"|sprintf:$float} atualmente funciona,
mas o melhor seria algo mais intuitivo. Por exemplo: {$float|string_format:"%2.f"}
que é disponibilizado na distribuição do Smarty). Segundo: com a variável
$security ativada em todas as funções do
php que são usadas como modificadores precisam ser declaradas como confiáveis (trusted)
na matriz $security_settings['MODIFIER_FUNCS'].
capitalize
Isto é usado para converter para maiúsculas a primeira letra de todas as palavras em uma variável.
Exemplo 5-2. capitalize index.php:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'Police begin campaign to rundown jaywalkers.');
$smarty->display('index.tpl');
index.tpl:
{$articleTitle}
{$articleTitle|capitalize}
SAÍDA:
Police begin campaign to rundown jaywalkers.
Police Begin Campaign To Rundown Jaywalkers. |
|