Table of Contents
Los modificadores de variables pueden ser aplicados a variables,
funciones habituales o cadenas. Para aplicar un modificador, especifique
el valor seguido por |(pipe) y el nombre del modificador.
Un modificador necesita parámetros adicionales que afetan en su funcionamento.
Estos parámetros siguen al nombre del modificador y son separados por
: (dos puntos).
Example 5.1. Ejemplo de modificador
{* apply modifier to a variable *}
{$title|upper}
{* modifier with parameters *}
{$title|truncate:40:"..."}
{* apply modifier to a function parameter *}
{html_table loop=$myvar|upper}
{* with parameters *}
{html_table loop=$myvar|truncate:40:"..."}
{* apply modifier to literal string *}
{"foobar"|upper}
{* using date_format to format the current date *}
{$smarty.now|date_format:"%Y/%m/%d"}
{* apply modifier to a custom function *}
{mailto|upper address="me@domain.dom"}
Si usted aplica un modificador a una matriz en lugar del valor de
una variable, el modificador va a ser aplicado en cada uno de los
valores de la matriz. Si usted realmente quisiera que el modificador
funcionara en una matriz entera, debe colocar el simbolo
@ antes del nombre del modificador, así como:
{$articleTitle|@count} (esto mostrara el número de
elementos de la matriz $articleTitle.)
Los modificadores pueden ser cargados automáticamente a partir de su
$plugins_dir (vea también:
Naming Conventions)
o pueden ser registrados explicitamente (vea:
register_modifier).
Adicionalmente, todas las funciones de php pueden ser
utilizadas como modificadores implicitamente.
(El ejemplo @count de arriba usa actualmente la
función count de php y no un modificador de Smarty).
Usar funciones de php como modificadores tiene dos pequeños problemas:
Primero, algunas veces al ordenar los parámetros de una función
esto no es aconsejable ({"%2.f"|sprintf:$float}
actualmente funciona, pero existe algo mas intuitivo
Por ejemplo: {$float|string_format:"%2.f"}
que es proporcionado con la distribución de Smarty).
Segundo: con $security activado,
todas las funciones de php que sean utilizadas como modificadores deben
ser declaradas como variables de una matriz
$security_settings['MODIFIER_FUNCS']
.
Ver también register_modifier(), register_function(), Extending Smarty with plugins y modifiers,
| Posicion del Parametro | Tipo | Requerido | Default | Descripción |
|---|---|---|---|---|
| 1 | boolean | No | false | Este determina que palabra con digitos no debe ser convertida |
Este es usado para convertir a mayuscula la primera letra de todas la palabras de una variable.
Example 5.2. capitalize
<?php
$smarty->assign('articleTitle', 'next x-men film, x3, delayed.');
?>
Donde el template es:
{$articleTitle}
{$articleTitle|capitalize}
{$articleTitle|capitalize:true}
Esta es la salida:
next x-men film, x3, delayed. Next X-Men Film, x3, Delayed. Next X-Men Film, X3, Delayed.
