Inicio | Pedro Santana |  RSS  Mi tumblelog  Mis photos  Mi CV

 

Clase PHP 4 para templates (plantillas o themes)

Actualización: He modificado el post para agregar documentación más detallada sobre el uso de la clase.

En gelato estamos usando una clase para pocesar los themes de los tumblelogs, una clase heredada de esta versión alpha de Códice CMS (versión que solo quedó en el SVN) y mejorada para procesar bloques en gelato.

Creé este motor porque requeria algo ligero, que tuviera sólo lo que se necesita y nada más, por eso no utilicé ninguno de los tantos ya existentes y muy buenos.

La dejo aquí por si a alguien le interesa para algo:

La clase: themes.class.php

Modo de utilización

Para utilizar la clase debemos seguir los siguientes pasos:

La estructura de directorios para utilizar el template engine es la siguiente:

  • ./themes <– Se deben agregar los themes SIEMPRE dentro de la carpeta themes.
  • ./themes/nombreTheme/ <– Por cada theme se debe crear una nueva carpeta.
  • ./themes/nombreTheme/plantilla.htm <– dentro de la carpeta del theme se pueden agregar tantas plantillas como queramos.

Paso número 1: Crear la plantilla a utilizar, para esto debemos indicar entre llaves { } el nombre de la variable que va a sustituir el template engine. Debemos ponerle extensión .htm

post.htm (ruta: ./themes/gelato/post.htm)

  1. <div class="post">
  2.   <div class="regular">
  3.     <h2>
  4.         <a href="{Permalink}">{Title}</a>
  5.     </h2>
  6.     {Body}
  7.   </div>
  8. </div>

Paso número 2: Crear archivo PHP que creará una instancia del template engine para procesar la plantilla.

index.php (ruta: ./index.php)

  1. require_once("themes.class.php");
  2. // instancia con nombre del theme.
  3. $template = new plantillas("gelato");
  4. // variables a sustituir.
  5. $input = array("{Permalink}", "{Title}", "{Body}");
  6. // Valores reales.
  7. $output = array("http://www.gelatocms.com/", "Titulo", "Cuerpo");
  8. // cargamos la plantilla post y asignamos los valores.
  9. $template->cargarPlantilla($input, $output, "post");
  10. // mostramos la plantilla.
  11. $template->mostrarPlantilla();

Cualquier duda, favor de usar los comentarios del post.

19 comentarios en “Clase PHP 4 para templates (plantillas o themes)”

 

Stan

Una excelente aportacion a la comunidad Pedro.

Hace falta una opcion de imprimir los post en tu blog, para poder llevarme a casa materiales como este.

Un saludo y ve preparando el background el lunes con el logo del Cruz Azul.

IgnacioMarcos

excelente!… ahora queremos la versión en un zip y con documentación :P XD

pecesama

@Stan gracias, veré mas adelante que puedo hacer para implementar esa opción.

@Ignacio en cuanto regrese de vacaciones lo pongo :)

rZeta

Una consulta, si quisiera hacer una traduccion de Gelato, solo bajo el poedit, edito y luego subo los archivos zipeados?

Estaría genial que te curraras un pequeño tutorial para crear themes para Gelato, o portar los de WordPress, la verdad que sería harto útil.
Saludos!

DereK

No me queda mas que aplaudir al autor!

Por casualidad me tope con este blog, y que decir, hombre! es mas que excelente!

Yo tambien espero la documentacion!

pecesama

rZeta para realizar la traduccion de Gelato, lo que tienes que hacer despues de editarlo con el poEdit o algun software similar, es copiar el folder donde se encuentra la traduccion al folder /languages/

ponde en mi lista de cosas por hacer lo del tutorial de themes :)

pecesama

Derek gracias por tu comentario, en el transcurso de esta semana tendre listo el zip con comentarios.

Saludos.

pecesama

stan ya esta lista la opción de imprimir los post, esta el enlace abajo del título del post.

jhony

el tema esta muy interesante y entretenedor
mi pregunta es si se puede remplazar los valores
por variables de php

pecesama

jhony puedes incluir cualquier variable de PHP, solo que en el template debes indicarlo con las etiquetas especiales {variable}

kael

para cambiar las plantillas en un solo archivo .php

con un menu?

cambiar solo el tpl sin ocupar otro archivo php
index.php

1.tpl
2.tpl

daniel

una pregunta, se pueden hacer tablas dinamicas con esta clase?

daniel

como?…porque no logro hacer las tablas dinamicas…
me podrias dar un ejemplo?..

pecesama

dime más o menos que es lo que quieres desplegar como tabla dinámica y te pongo un pequeño ejemplo

daniel

quiero desplegar una lista de juegos, osea mi codigo muestra solamente los ultmos resultdados de la insercion de los registros en la base de datos, por ejemplo:
primero inserto Hola a la base de datos
despues inserto Chau a la base de datos

muestra Chau, creo que es por el foreach…

Otra pregunta… se pueden utilizar CSS? i en el caso que se pueda, como hago para que se muestre con el formato CSS?

Desde ya Muchas gracias y te felicito por tu sistema, muy bueno

Daniel

Necesito informacion acerca de como hacer las tablas dinamica, en mi caso tengo que mostrar una lista de juegos con paginacion.
espero que puedas ayudarme ya que no logro hacer la tabla dinamica utilizando tu clase de plantillas…
Gracias..

luis

hola
Yo necesito crear una tabla dinamica que carga los datos de una tabla de la Base de Datos pero estos datos de la bd a demas de aumentar los registros tambien aumenta en campos, hasta ahora solo he logrado que me tabla me coja todos los registros nuevos que se va insertando en la bd pero cuando se agrega un nuevo campo no lo muestra
alguna sugerencia??
uso php y mysql
saludos

snake78

hola amigo exelente post.

Te explico que estoy creando un cms desde cero.
Tengo la carpeta themes y dentro dos carpetas mas Default que seria el tema por defecto y Gold otro tema.

El cms tiene un isntalador que me crea las tablas y el usuario admin.

Lo que no consigo es como hacr para que el instalador ya me cargue el tema Default por defecto y que desde el index los usuarios puedan cambiar de theme.

Podrias ayudarme en eso,estoy loco buscando y no encuentro como hacer eso.

de antemano gracias.

 

Deja un comentario