Table of Contents
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).
Example 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'].
Isto é usado para converter para maiúsculas a primeira letra de todas as palavras em uma variável.
Example 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.