Tema: Templates
Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/01/2003, 14:59
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 23 años
Puntos: 0
Bueno, aqui vamos...

La idea es la siguiente, tenemos un archivo template con la tabla y otro con las filas (Esta es la manera mas sencilla y hacer, lo ideal seria utilizar bloques, pero para el ejemplo creo que se entenderá)

tpltabla.html

<table>
{FILAS}
</table>

tplfilas.html

<tr> <td><font> Enviado el {FECHA} </td></tr>
<tr><td><font><b>{TITULO}</b> Enviado por {AUTOR}</td></tr>
<tr> <td><font>{PREVIEW}</td></tr>
<tr> <td><a href="../news/vermas.php?id={ID}">Ver mas</a></td></tr>


Ahora, veamos el código

Código PHP:
   //Incluimos la clase
   
require_once("class.NokTemplate.php");

   
//Creamos una instancia y le indicamos donde se encuentran los archivos templates
   
$html=new NokTemplate('templates');

   
//Cargamos los templates
   
$html->cargar('miTabla','tpltabla.html');
   
$html->cargar('miFila','tplfilas.html');

   
//Realizamos la consulta...
   
$query "select * from news order by id desc ";
   
$resp mysql_query($query) or die("Error en consulta");
   
   
//Obtenemos los datos en un bucle
   
while ($row mysql_fetch_array($resp)) {
   
$fecha=date("d/m/Y",$row["fecha"]);
   
$autor=$row["autor"];
   
$titulo=$row["titulo"];
   
$id=row["id"];
   
$preview=$row["preview"];

   
//asignamos los valores a las variables del template
   
$html->asignar('FECHA',$fecha);
   
$html->asignar('TITULO',$titulo);
   
$html->asignar('AUTOR',$autor);
   
$html->asignar('PREVIEW',$preview);
   
$html->asignat('ID',$id);
   
   
//Ahora viene la llave del problema. Expandimos el resultado el template de la fila dentro de la variable filas.
// Al hacer esto estamos volcando el template con las variables asignadas dentro de otra variable.
// Notese el signo + antes del nombre del template, esto indica que el valor se irá concatenando al ya existente.
// De lo contrario sobreescribiriamos las filas anteriores y perderia sentido el script.

   
$html->expandir('FILAS','+miFila');
   
   }
// Cuando termine el bucle en la variable FILAS tendremos todas las filas de nuestra tabla.
   
   // Ahora para finalizar, volcamos el contenido de las filas dentro de la tabla y a su vez dentro
// de la variable FINAL para luego mostrarla por la pantalla.
   
$html->expandir('FINAL','miTabla');
   
   
Imprimimos la salida por pantalla.
   
$html->imprimir('FINAL'); 
Bueno, eso seria mas o menos como se utilizan las NokTemplates. El tema de los bloques es bastante parecido, la diferencia recide en que se pueden poner varios templates dentro de un solo archivo. En este ejemplo, podriamos poner la tabla y la fila en manera anidada, osea resultaria mas natural.

Saludos.
Cualquier duda no dudes en preguntar.
Nok.

Última edición por Nok; 17/01/2003 a las 15:43