Tema: Templates
Ver Mensaje Individual
  #14 (permalink)  
Antiguo 18/01/2003, 09:12
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cuando usas templates .. solo se envia "HTML" (y lo pongo entre comillas pues seria mejor decir "salida" o "salida al dispositivo" ...) cuando le das la "orden" al motor de templates que vuelque su "buffer" a la salida ... Eso lo haces con algun método .. en el caso de NokTemplates con:

$html->imprimir();

Por ende .. tus "session_start()" .. tus "header()" y todaaa funcion PHP la debes usar en tu script.php en el momento que corresponda ...

Por ejemplo para el uso de una cabecera tipo:

header("location: blabla.php");
exit;

Que como ya sabras suele dar muchos problemas a la hora de q exista algo de HTML antes de dicha instrucción ... Cuando usas templates no hay problemas .. pues, mediante los metodos como $html->asignar() ... $html->expandir() y todos los demas (salvo el $html->imprimir() ), estas "formando" tu HTML (la salida) sobre una "variable" (buffer) .. la cual SOLO es entregada al navegador (en este caso es el navegador nuestro dispositivo de salida) .. cuando ejecutas $html->imprimir() ...

Por lo tanto .. puedes hacer perfectamente algo tipo:
Código PHP:
<?
// etc ..

IF ($algo_se_cunple){
//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);
} else {
header ("location: algunsitio.php");
exit;
}

// etc código

$html->imprimir('FINAL');
?>
El ejemplo no es de lo mejor estructurado .. pero si q puedes ver q no hay problema en hacer tu "header .. location" cuando lo necesites sin problemas . pues hasta q no se ejecute $html->imprimir() .. no se han mandado nada de HTML al navegador (todavia se estaría procesando la generación de ese HTML ..).

Para q se entienda .. Usar un motor de templates implica que este (el motor de templates) genera "la página" sobre una variable (o buffer) .. cuando termina de generarla y a petición del código (de ese metodo en cuestión como en este caso $html->imprimir() .. se envia al navegador).

Un saludo,