NokTemplate. Fácil, rápida y en castellano.
Nuestro primer ejemplo
Bueno, para iniciarnos en el mundo de los templates vamos a partir con un ejemplo bien sencillo. Antes de empezar, nos falta saber como se definen las variables (anteriormente nombradas). Las variables dentro de las plantillas se definen entre llaves ('{' y '}') y puede contener letras mayusculas, minusculas, numero y underscore ('_'). Es importante tener en cuenta que las variables son sencibles a las mayusculas y minusculas, por lo que no es lo mismo {MiVariable} que {MIVARIABLE}. Sabiendo eso, pongamos manos a la obra:
Para nuestro primer ejemplo utilizaremos 2 templates: cuerpo.html y contenido.html (la extension del archivo template puede ser .tpl o cualquier otra, en mi caso prefiero .html porque es mas facil de relacionar con el editor HTML)
cuerpo.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>{TITULO} - Powered by NokTemplate</title>
</head>
<body>
{CONTENIDO}<br />
</body>
</html>
contenido.htmlHola, mi nombre es {NOMBRE}.
Bien, como se darán cuenta tenemos 2 variables en una plantilla ({TITULO} y {CONTENIDO}) y 1 en la otra ({NOMBRE}). Estas variables serán referenciadas desde nuestra aplicación que veremos a continuacion.
-
<?php
-
// Incluimos la Clase obviamente.
-
include ('Class.NokTemplate.php');
-
-
// Creamos una instancia del objeto.
-
// Definimos el lugar donde se encuentran los templates, en este caso './templates'.
-
$html = new NokTemplate('./templates');
-
-
// Cargamos los templates necesarios y le asignamos una clave,
-
// o sea tCuerpo hace referencia a cuerpo.html y tContenido a contenido.html
-
$html->cargar('tCuerpo','cuerpo.html');
-
$html->cargar('tContenido','contenido.html');
-
-
// Asignamos a la variable TITULO un texto. Titulo puede estar definida en
-
// Cualquiera de las Plantillas.
-
$html->asignar('TITULO','Ejemplo número 1');
-
-
// Hacemos lo propio con Nombre.
-
$html->asignar('NOMBRE','Nok');
-
-
// Ahora, expandimos el contenido del template tContenido con sus
-
// variables ya asignadas, es decir, al hacer esto todo el contenido de la
-
// Plantilla cuerpo.html se "asignará" a la variable contenido, con la
-
// Salvedad que las variables que esten definidas dentro de la plantilla
-
// Se les asignará su valor. O sea NOMBRE = 'Nok'.
-
$html->expandir('CONTENIDO', 'tContenido');
-
-
// Para ir terminado expandimos el contenido del template tCuerpo
-
// en una variable cualquiera, que puede no estar en ningun Template.
-
// Simplemente para que se asignen los valores a las variables definidas
-
// dentro de tCuepo. O sea: TITULO='Ejemplo número 1' y
-
// En CONTENIDO se vuelca lo que recien expandimos.
-
$html->expandir('FINAL', 'tCuerpo');
-
-
// Y por ultimo imprimimos la varible que contiene todo ya procesado.
-
// En este caso se llama FINAL pero puede ser cualquiera.
-
$html->imprimir('FINAL');
-
?>
Bien, ese fue el primer ejemplo con templates. Al final de la ejecución del script obtendremos algo asi:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Ejemplo número 1 - Powered by NokTemplate</title>
</head>
<body>
Hola, mi nombre es Nok.<br />
</body>
</html>

el March 14th, 2006 a las 9:46 pm
Hola, Mil gracias por la colaboracion
El link no funciona
http://www.jpw.com.ar/noktemplate
Saludos
el March 14th, 2006 a las 10:05 pm
Muchas gracias por el comentario… el link correcto, actualmente, es:
http://www.jpw.com.ar/noktpl.php
Ya lo corregí en el artículo.
el March 15th, 2006 a las 12:55 pm
Mil Gracias
el March 23rd, 2006 a las 7:38 pm
Hola!!! Buenas taredes me gustaría saber si tu me puedes decir en donde puedo encontrar un turtorial completo para ir desarrollando un aplicación web con php y mysql. Tengo que desarrollar una aplicación cliente servidor para una pizzería tipo (pizza hot u otras), con una sede central y varias sucursales. Nunca he usado php, pero me lo pidieron en eso.
Gracias por tu atencion
el March 28th, 2006 a las 6:01 am
Hola saludos a todos:
Estoy unsando las funciones de protocolo de PHP
ftp_connect() en Lycos y me dice que no esiste esa funcion
la pregunta es:
como puedo ptrobar este tipo de funciones?
juan carlos
os dej0o mi dire por si alguien me puede aclarar algo
j.carlos.ochoa@terra.es
el March 29th, 2006 a las 10:33 am
Hola, excelente publicación !!!
el link para descargar la clase no funciona…. en realidad todo el sitio
Espero que se solucione pronto.
Saludos
el May 18th, 2006 a las 4:59 pm
necesito aprender a manejar los templates , me pueden dar una mano, muhcas gracias
el June 30th, 2006 a las 11:50 am
hola muchas gracias por informaciones que nosotros los novatos necesitamos tanto
el July 12th, 2006 a las 11:13 am
Buenas mi pregunta es si hay que ubicar la plantilla, dentro del directorio php o donde?
muchas gracias
.
el September 21st, 2006 a las 4:02 pm
espera ver unos ejemplos cuando menos, aun la explicaciones buena, pero con ejemplos seria mejor, gracias
el September 22nd, 2006 a las 7:40 pm
Tengo una Duda en la Pag 3, la Parte PHP debe ir en el Mismo Directorio que “class.NokTemplate.php”, y q los templates deben ir en “/templates/contenido.html” y “/templates/cuerpo.html”, y al Archivo PHP le eh puesto “index.php”, pero de Da Errores, alguien puede ayudarme???, que estoy haciendo Mal???
el October 5th, 2006 a las 6:08 pm
Gracias por Los Templates, están interesantes para uno que es novato en esto, están claros, muchas gracias!!!
el October 11th, 2006 a las 5:44 pm
yo tengo un problema envio datos a una base de datos de un text area asi:
angel
hernandez
y cuando los obtengo otra vez de la bd mysql aparecen asi
angelhernandez
el November 30th, 2006 a las 9:43 am
En el código de php veo claro como asigna las variables NOMBRE y TITULO, pero si lo que estamos haciendo es asignar variables, ¿Como se le esta asignado a {CONTENIDO} el bloque entero contenido.html? Intuyo que lo que se hace es expandir una plantilla (tContenido) sobre la variable CONTENIDO, o lo que se podría decir como “asignar” una plantilla a una variable de otra plantilla.
Esta es más o menos mi duda sobre el funcionamiento de asignar y expandir plantillas, casi me lo he resuelto, pero los comentarios vuestros no vienen nunca de más.
Así entre todos le podemos sacar mas partido a las plantillas.
Muchas gracias.
http://lamardivina.com
el January 15th, 2007 a las 4:56 pm
Hola. Quise bajar la clase de NokTemplate desde el link que se indica (http://www.jpw.com.ar/noktemplate) y el server me da el sig. error: “Limite de transferencia mensual superado”.
Hay posibilidad de que me lo envíen por mail? Me interesó bastante poder probar esta clase… gracias!
el January 22nd, 2007 a las 5:04 pm
Al parecer hay un problema con el sitio donde está alojada la clase NokTemplate. Voy a hablar con el creador de la clase para ver si es posible que restaure el sitio en el mediano plazo, o sino, veremos de hospedar la clase aquí en zonaPHP.
el February 2nd, 2007 a las 2:20 pm
Estimados, Se ha resuelto el inconveniente en el sitio, ya esta disponible nuevamente, aunque tanto el foro, como el libro de visitas se encuentra cerrado por el momento.
Saludos
Nok!
el February 14th, 2007 a las 5:15 pm
Saludos.
Tengo problemas para insertar datos con php a traves de un formulario en la base datos mysql. Tiene que ver si el servidor esta en Apache o CGI ?. Alguien me podía faciliar el script para insertar datos.
el August 5th, 2007 a las 6:24 pm
En el ejemplo 2 me tira un error diciendo:
“Notice: Undefined index: FILAS in d:\easyphp1-8\www\pruebas\class.NokTemplate.php on line 293″
lo solucione inicializando la variable FILAS a ” con:
$html->asignar(FILAS,”);
No se si a a alguien mas le sucedio esto, pero espero que le sirva.
el August 16th, 2007 a las 10:51 am
Buenas, muchas gracias por el aporte!!
Una preguntilla… habrá más artículos relacionados con este tema??
Un saludo, a cuidarse!
el October 17th, 2007 a las 1:52 pm
Hola… tengo un problema y es que no me carga el template… no me muestra ningun error de PHP si la clase saca errores, pero igual no me muestra nada, nada, que puede ser.. les recomiendo mucho…
el July 1st, 2008 a las 8:34 am
Hola,
Como se puede programa las templates para hacer una pagina con capas. cabecera,capaizda, capacentro, capaderecha, pie y poder situar imagenes, enlaces etc. Algo parecido a Drupal.
Hay mas tutoriales sobre NokTemplate?
Saludos, Luis