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:
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.