Plantillas Smarty

Las plantillas Smarty son un motor de templates para php, que básicamente lo que realiza es permitir que un Framework separare lo que corresponde a la capa de presentación a la capa de lógica de negocios, para alcanzar algo parecido a un modelo vista controlador aunque de una manera mas simple pero bastante decente desde mi punto de vista, aunque en aplicaciones que el nivel de complejidad es alto, no las recomendaria porque tienen algunas limitaciones en las cuales se hace mas fácil y recomendable utilizar un framework mas avanzado.

Al optar por las plantillas Smarty podemos obtener cosas muy interesantes sobre todo cuando realizamos trabajo en equipo con un diseñador, algunas de las cosas que podemos encontrar y lograr son:

  • Separar físicamente los archivos de lógica php con los archivos de interfaz en archivos de planillas con la extension TPL.
  • Obtenemos un un codigo mas legible y ordenado.
  • Nos permite una mayor escalabilidad.

 

Ademas para mayor flexibilidad las nuevas versiones de las plantillas smarty nos permite incorporar estructuras de control que nos van a facilitar mucho las cosas en algunos casos.

Como es costumbre en este blog… dejare un ejemplo basico de el uso de plantillas smartys y ademas de una pequeña WebGrafia de donde se puede obtener tutoriales mas detallados y avanzados.

Ejemplo:

Lo que se hará aquí es un típico mantenedor de personas en el que podamos realizar una inserción, listado y visualización de personas.. ademas se le agrega una fotografía la cual ira a ser almacenada en la base de datos MySql.

Lo que necesitamos:

– Servidor local que corra php (obvio!)
– Una base de datos Mysql
– Las ganas.. 😛

Veamos los ficheros y su descripción:
– configuracion.php : Un poco evidente.. pero es el archivo en donde se configuran las credenciales de acceso a la base de datos mysql.
– index.php: La pagina principal en donde se carga el menú de opciones, esto simplemente no tiene ninguna gran logica.
– buscar_persona.php: Esta pagina nos permite ingresar un patrón de búsqueda con respecto al nombre para buscar una persona que hayamos agregado.
– ingresar_persona.php: Aqui realizamos algunas comprobaciones y agregamos a una persona al sistema
– listado.php: Total de usuarios agregados al sistema y enlace a su detalle.
– persona.php: Detalle de una persona junto con un enlace a la fotografía que se almaceno en la base de datos para esta.
– ver_fotografia.php: El código que nos extrae la fotografía y muestra por pantalla.

El flujo que sigue el código seria el siguiente:
Se ejecuta el php que contiene la llamada a la plantilla (.tpl) ->Se ejecuta la plantilla tpl cargando la interfaz gráfica con la variables enviadas desde php -> Al presionar un boton (mediante form) llamamos a la pagina que referenciamos en el formulario, de ser la misma que llamo a la plantilla se ejecuta de nuevo realizando el mismo ciclo.

Resumidamente:
php -> tpl -> php -> tpl

Explicando:

index.php:
– este codigo lo que va a realizar es mostrar el menú de los componentes del sistema, así que solo cargaremos la plantilla mediante php en donde se encuentra el menu con los enlaces correspondientes. – como podemos ver en el codigo lo primero que se realiza es la importación de la libreria de Smarty la cual como se vera mas adelante se carga en todos los codigos en donde se utilicen las plantillas como es lógico, esto lo realizamos mediante la linea:

require(‘/libs/Smarty.class.php’);

Luego cargamos la plantilla “index.tpl” por medio de las siguiente cinco lineas de codigo:

$smarty = new Smarty;
$smarty->debugging = false;
$smarty->caching = false;
$smarty->cache_lifetime = 120;

$smarty->display(‘index.tpl’);

ingresar_persona.php
– en este bloque se realiza la insercion de los datos de la persona en donde incluimos rut, nombre, telefono y la foto que va a ir a la base de datos, en primer lugar tenemos la funcion “carga_imagen” que es la que nos permite codificar la imagen en base 64 para almacenarla en la base de datos, posteriormente tenemos las acciones secuenciales al pulsar el click en donde pasamos por una serie de restricciones para final mente permitir insertar el registro, y por ultimo cargamos la plantilla smarty. Secuencialmente hablando la pagina Php carga estas funciones pero no las ejecuta hasta el momento que en el tpl se produce el clic al botón y se cargue de nuevo el php.

buscar_persona.php
– buscar persona lo que realiza primero es llamar a la plantilla pasandole la variable “$tabla” sin nada, posterior al presionar el clic e ingresar algún texto de búsqueda realiza una consulta en la cual los resultados son trabajados mediante un bucle while a una estructura html que se almacena en la variable “$tabla”, de modo que esta ahora queda con codigo html que sera enviado nuevamente a la plantilla.

listado.php
– el listado hace básicamente lo mismo que buscar_persona.php con la diferencia que los trae inmediatamente sin esperar un clicc y ademas trae a todas las personas que existen en la tabla de la base de datos.

persona.php
– este código lo primero que hace es rescatar el parámetro enviado por get “$nombre = $_GET[‘nombre’];” para trae el detalle del la persona que le estemos pasando mediante el parámetro, la única diferencia con los otros es que esta consulta solo trae la información para una determinada persona y de esta forma mostrar sus detalles por pantalla mediante una tabla.

ver_fotografia.php
– finalmente tenemos a ver fotografia .php que se encarga solamente de traer la foto de la persona de una persona determinada mediante el parametro get, como vemos no carga ninguna plantilla puesto que este código solo descodifica la información que viene almacenada de la base de datos y la muestra por pantalla.


Descargar Ejemplo
 

Pagina Oficial de Smarty: www.smarty.net

@gnzandrs