XOOPS Brasil

 

Chapter 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).

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'].

capitalize

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.