Capítulo 5. Modificadores de variáveis

Índice
capitalize
count_characters
cat
count_paragraphs
count_sentences
count_words
date_format
default
escape
indent
lower
nl2br
regex_replace
replace
spacify
string_format
strip
strip_tags
truncate
upper
wordwrap

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.