Capítulo 5. Modificadores de variables

Tabla de contenidos
capitalize
cat
count_characters
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

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

Ejemplo 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,

capitalize

Posicion del ParametroTipoRequeridoDefaultDescripción
1booleanNofalseEste 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.

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

Ver también lower upper