Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Internet > PHP > Smarty
-Tutoriales

Smarty


Uso de filtros

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.

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network