SpynTPL es una clase que hice hace mucho tiempo, la idea era la de tener un sistema de templates para PHP que cubriera mis necesidades sin tener que recurrir a Smarty u otras que ocupan demasiado espacio con demasiadas funcionalidades que nunca utilizaré.
La idea del motor de plantillas es simple, separa el código del diseño. De tal forma que conseguimos reducir el coste de mantenimiento de nuestras aplicaciones, podremos modificar el aspecto sin tener que tocar el código y cambiar el código sin tener que tocar el diseño. Además dispone de un sistema rústico de cache con el que conseguimos que el rendimiento de la web mejore considerablemente.
Podeis descargar la clase aqui.
Manual de uso
La forma de uso es más bien simple, únicamente tenemos que conocer como decirle que fichero HTML (o como queramos) ha de coger para aplicar el estilo y respetando las variables no tenemos que tener ningún problema.
Empecemos
Primero tenemos que definir una serie de variables desde nuestro fichero .php.
fichero.php
//Importamos el fichero de la clase en nuestro fichero.
include('class-tpl.php');
//Generamos un nuevo objeto donde se realizará la conversión. $html = new SpynTPL($directorio_templates); //$directorio_templates es el lugar donde se encuentran las plantillas.
//Ahora llamamos al fichero que necesitamos para esta página. $html->Fichero("fichero.html");
//Y ahora la mágia, de esta forma podemos Asignar un valor a una variable. $html->Asigna("VARIABLE", $valor); //$valor es el valor que se reemplazará por la variable
//Con esta llamada mostraremos el resultado de la fusión del HTML con las variables definidas. echo $html->Muestra();
Y en nuestro fichero .html tenemos que definir el aspecto que queremos que tenga nuestra aplicación.
fichero.html
<head>
<title>[VARIABLE]</title> <!-- En este punto [VARIABLE] pasará a valer $valor -->
</head>
Como podeis ver no es muy complicado.Simplemente tenemos que respetar que las variables explorarán en el lugar donde se encuentre [NOMBRE_VARIABLE]
de esa forma conseguiremos que el valor se cambie.
Usando Bloques
En algunos casos quizas necesitaremos el uso de bloques que se repitan X veces, y el uso de una simple variable no cubre nuestra necesidad. Por ese motivo implementé un AsignaBloque al que le pasaremos un array y el se encargará de explotar las variables que hayamos definido dentro. Un ejemplo dejará más claro esto.
ejemplo.php
while($row = mysql_fetch_assoc($rs))
{
$row["fontcolor"] = $fontcolor;
$row["color"] = $color;
$row["nombre"] = $nombre;
$row["apellido"] = $apellido;
$html->AsignaBloque('temas',$row);
}
Como podeis ver insertamos un array y definimos las claves con nombres y cada una de ellas se reemplazará por el valor que le hayamos declarado dentro del array.
ejemplo.html
[block: temas]
<div style="background-color:[color]; color:[fontcolor]">
<p> <strong>[nombre] </p>
<p>[apellidos] </p>
</div>
[/block: temas]
Definimos los bloques con la siguiente [block: nombre] [/block:nombre]
y dentro exactamente igual que si de variables simples se tratara, de esta forma el contenido se repetirá a lo largo del while insertando el HTML con los valores ya reemplazados N veces.
Espero haber dejado más o menos claro es uso de la clase, si tengo tiempo esta noche subiré un ejemplo completo y funcional.
21 comentarios, 2 referencias
+
#