Hola, ¡¡Muy buenas!!
Cuanto tiempo que no posteba un tutorial... bueno vamos alla.
Las plantillas Smarty estan en muchos sitios que seguro que hemos utilizado y nunca nos hemos dado cuenta, como en los foros prefabricados, tiendas on-line (Prestashop)... no os suenan los archivos plantilla? (ejemplo: index.tpl).
La gran ventaja de trabajar con plantillas Smarty es que tienes por una parte el codigo y por otra el diseño en HTML (archivo .tpl), es decir separamos totalmente la programación del diseño, esto va muy bien para gente que trabaja junta (un diseñador + un programador) o Webs que quieres ponerle varias plantillas, o Webs como la mia de Fanatik Soccer que el diseño hoy me gusta dentro de 1 mes pienso que es una basura y me da por cambiarlo y es un Webo de faena con la de codigo que hay por hay enmedio.
Encontrareis gente que esta en contra porque igualmente el diseñador aunque no tenga que aprender nada de programación solo diseñar, si que tiene que tiene que aprender un poco, pero algo tan basico como un if, else, foreach y poco más... (Se quejan de que una ayuda no te lo hace todo, ¿pues no sera mejor aprender 4 cosas que toda la trallada de PHP?)
Vamos a explicar realmente como funciona esto internamente... tu tienes por una parte el codigo PHP, tienes la plantilla y a partir de una clase (de Smarty) se compila por decirlo de alguna manera la plantilla con el PHP y se guarda en una carpeta (esto solo ocurre en la primera ejecución de la plantilla) y se genera un 3 archivo, uno en PHP que es el PHP base nuestro mezclado con la transformación de las etiquetas Smarty... esto os ira quedando más claro con los ejemplos...
Nos decargamos de internet la base de Smarty
http://www.smarty.net/download.phpNos quedamos con una carpeta llamada smarty Smarty_Compiler.class.php, Smarty.class.php entre otras carpetas y archivos que contiene...
y creamos una carpeta llamada directorios_smarty en la que dentro de esta crearemos varias subcarpetas que posteriormente utilizará smarty templates_c, templates, configs y cache.
Entonces nos quedamos en la raiz de nuestro sitio Web con una carpeta llamada smarty y otra llamada directorios_smarty
Tenemos un archivo PHP en la raiz
index.php
<?php
require('smarty/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'directorios_smarty/templates';
$smarty->compile_dir = 'directorios_smarty/templates_c';
$smarty->cache_dir = 'directorios_smarty/cache';
$smarty->config_dir = 'directorios_smarty/configs';
$smarty->assign('usuario', "G2K");
$smarty->display('index.tpl');
?>
y dentro de directorios_smarty y templates
index.tpl (que es el que llamamos desde index.php)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Smarty Mola</title>
</head>
<body>
Hola {$usuario}
</body>
</html>
Y si entramos desde nuestro navegador a index.php y hemos seguido bien todos los pasos saldrá algo como:
Hola G2K
Lo que reamente hacemos en el archivo PHP es hacer la configuración de nuestro sistema Smarty, asignar una variable llada usuario cuyo valor es G2K:
$smarty->assign('usuario', "G2K");
y mostramos la plantilla index.tpl:
$smarty->display('index.tpl');
En la cual se muestra la variable:
Hola {$usuario}
Espero que lo probeis, os guste y lo utilices, recordad que esto es una iniciación a plantillas Smarty, donde solo he enseñado a crear una variable y mostrarla en una plantilla, en proximos tutoriales (espero que sea pronto) enseñare ha hacer if's, bucles foreach y como recorrer diferentes consultas sql con Smarty (dependiendo del exito de este tutorial).
¡¡Un saludo a todos y suerte!!
Os animo a probarlo