Variables modificadas
Smarty ofrece alrededor de 20 modificadores, con ayuda de los cuales
podemos cambiar la apariencia de las variables, pero no sólo eso. Para aplicar
un modificador en una variable debemos utilizar el esquema
{$variable_name|modifier_name}
Algunos de los modificadores pueden tener parámetros que deben ser proporcionados
al llamarlos. Si existiera la necesidad de añadir un parámetro a un
modificador, entonces utilizaríamos el siguiente esquema:
{$variable_name|modifier_name:
parameter1:parameter2}
El parámetro puede ser una cadena o un valor numérico. En el primer caso,
debemos colocarlos entre comillas. ¿Qué modificadores serían de utilidad en nuestro
ejemplo? Notemos que no todos los fragmentos del título del álbum empiezan
con mayúsculas. Podría ser un dato erróneo en la base de datos, pero esto
no nos interesa. Este valor de la variable fue transferido a la plantilla y debemos
arreglárnoslas con eso. Para eliminar este problema, añadamos el modificador
capitalize a la variable $albumTitle. Este hará que cada palabra en la variable dada
empiece con mayúscula.
Otro punto que merece la pena subrayar, es el índice de canciones. Supuse que
es porporcionado en forma de una variable escalar, donde los títulos son separados
por punto y coma. Desde luego, sería más cómodo almacenarlos en un
array, pero de esto nos ocuparemos luego. Ahora intentemos formatear la lista que
nos llega en esta forma. Para empezar, nos valdremos del modificador replace,
el cual busca en la variable una cadena que nos interesa y la cambia por otra. En
este caso, estamos trabajando con un modificador que requiere dos parámetros.
El primero de ellos es la cadena a buscar y el segundo – la cadena a introducir.
Entonces cambiemos los puntos y comas en la variable $albumSongs por tags <br/>.
De este modo obtendremos una lista de canciones, cuyos títulos serán colocados
uno debajo del otro.
El último punto será ajustar el párrafo con la descripción del disco. Para este
propósito debemos utilizar el modificador wordwrap, el cual ajusta la cadena
a un ancho determinado. El modificador posee tres parámetros. El primero de
los parámetros indica el ancho al cual el texto se debe ajustar (por defecto son 80
caracteres), el segundo, define el símbolo que servirá para ajustar el texto (por
defecto es \n), el tercer parámetro indica si el texto debe ser ajustado al final de la
palabra o si la palabra puede ser dividida en dos partes (la primera opción es la
que está por defecto).
La plantilla con cambios se presenta en el Listado 3, y su funcionamiento se
muestra en la Figura 4.
Listado 3: Plantilla album.tpl después de agregar los modificadores
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<meta name="description" content="Discografía del conjunto The Beatles" />
<title>{$albumName|capitalize}</title>
</head>
<body>
<h3>{$albumName|capitalize}</h3>
<table>
<tr>
<td style="vertical-align: top"><img src="{$albumCover}" alt="" /></td>
<td><b>Índice de canciones:</b><br />{$albumSongs|replace:";":"<br />"}</td>
</tr>
</table>
<h4>Descripción del álbum:</h4>
<p>{$albumSynopsis|wordwrap:100:"<br />"}</p>
<p><a href="">Página principal</a></p>
</body>
</html>