Smarty

En Smarty, los filtros quedaron divididos en 3 grupos: Prefilters (cambian el contenido de la plantilla antes de que haya sido compilada), Postfilters (modifican la plantilla despu�s de la compilaci�n) y Output Filters (son ejecutados en el momento de la invocaci�n de la llamada de la plantilla existente, con la ayuda del metodo display). Los filtros se pueden colocar dentro de las plantillas de dos formas: cargar un filtro ya creado o registrar uno nuevo en un archivo PHP. Primero describiremos este segundo m�todo.

Un filtro no es otra cosa que una funci�n creada por nosotros. Debe tener dos par�metros: $tpl_source (en el caso de los filtros del tercer grupo es $tpl_output) y &$smarty. Como se pueden imaginar f�cilmente, el primero de ellos es el contenido de la plantilla, y el segundo � nuestro objeto smarty. Exploremos el caso de postfilters, el cual qued� presentado en el Listado 5.

Listado 5: Archivo sgtpep.php despu�s de la modificaciones
<?
require ("Smarty.class.php");

$smarty = new Smarty;

$smarty->assign("albumName", "Sgt. Pepper's lonely hearts club Band");
$smarty->assign("albumCover", "grafika/sgtpep.jpg");
$smarty->assign("albumSongs",array(
  "Sgt. Pepper's Lonely Hearts Club Band" => "(2:02)",
  "With A Little Help From My Friends" => "(2:44)",
  "Lucy In The Sky Of Diamonds" => "(3:28)", "Getting Better" => "(2:47)",
  "Fixing A Hole" => "(2:36)", "She's Leaving Home" => "(3:35)",
  "Being For The Benefit Of Mr. Kite!" => "(2:37)",
  "Within You, Without You" => "(5:05)", "When I'm Sixty-Four" => "(2:37)",
  "Lovely Rita" => "(2:42)", "Good Morning, Good Morning" => "(2:41)",
  "Sgt. Pepper's Lonely Hearts Club Band (Reprise)" => "(1:18)",
  "A Day In The Life" => "(5:33)"));
$smarty->assign("albumSynopsis", "El �lbum m�s famoso del conjunto y uno
  de los mejores en la historia de la m�sica. Novedoso, genial � una verdadera
  obra de arte. El disco fue introducido al mercado en 1967 y  se convirti�  en
  uno de los s�mbolos de esa �poca.");
$smarty->assign("points", array("1", "2", "3", "4", "5", "6"));

function footer($tpl_source, &$smarty) {
  return $tpl_source."\n\n<p><a href=\"\">P�gina principal</a></p>
                      \n\n</body>\n</html>";
}

$smarty->register_postfilter("footer");


$smarty->display("album.tpl");
?>

Al inicio definimos la funci�n footer(), la cual responde de colocar el pie de p�gina. En nuestro caso es solamente un enlace a la p�gina principal y los tags de cierre </body> y </html>. Desde luego, el pie de p�gina es colocado despu�s del contenido de la plantilla. Luego de definir la funci�n, debemos registrarla como filtro. Lo lo hacemos con la ayuda del m�todo register_postfilter.

Por supuesto, ser�a m�s efectivo almacenar el filtro en un archivo separado, y despu�s, cargarlo directamente en la plantilla. Mostremos pues c�mo realizarlo.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO