Foros del Web » Programando para Internet » PHP »

Templates

Estas en el tema de Templates en el foro de PHP en Foros del Web. WOoooooooooolas Estuve mirando el ferdytemplate y los template del phpBB Xoops , php-nuke y no los entiendo, osea esos sistemas tienen una infinidad de .tpl ...

  #1 (permalink)  
Antiguo 17/01/2003, 10:27
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Templates

WOoooooooooolas

Estuve mirando el ferdytemplate y los template del phpBB
Xoops , php-nuke y no los entiendo, osea esos sistemas tienen una infinidad de .tpl includes, clases, functions y demases y no entendi nada aparte de esas {l_INICO} que menos entendi


Asi que estuve mirando el ferdytemplate, claro es mas sencillo que el resto pero no se su uso, mi idea es aprender un poco de el para poder crearme uno solito(mas adelante) pero como uso el ferdytemplate.

como es una clase tendre que usar un new template

pero que más?

Disculpen pr el post ya encontre algo de templates aqui

sorry
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 17/01/2003 a las 10:35
  #2 (permalink)  
Antiguo 17/01/2003, 10:41
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
supongo que tambien deberias probar las clases de template de NOK que vienen con documentacion en español y que por lo que he visto son muy claras y seguro que las vai a entender altiro :) ... por cierto, no me se la direccion de su web para bajarla :P

alguien la tiene?
__________________
=PoWeReD By MySeLf!=
  #3 (permalink)  
Antiguo 17/01/2003, 11:04
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años
Puntos: 68
La verdad... deberían enseñar a utilizar google en el colegio. Ya no es necesario hacer la tarea...

http://www.jpw.com.ar/noktemplate/
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #4 (permalink)  
Antiguo 17/01/2003, 11:09
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
plop
__________________
=PoWeReD By MySeLf!=
  #5 (permalink)  
Antiguo 17/01/2003, 12:54
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
ME baje el noktemplate esuve probando pero me di cuenta que nop puedo poner un <? echo ""; ?> , eso no lo muestra enoces tendria que hacer algo asi o no?

Código PHP:
$query "select * from news order by id desc ";
$resp mysql_query($query) or die("Error en consulta");
while (
$datos mysql_fetch_array($resp)) {
     
          
$fecha date("d/m/Y",$datos[fecha]);
          
$texto="
          <tr> <td><font> Enviado el   $fecha </td></tr>
                    <tr><td><font><b>$datos[titulo]</b>  Enviado por $datos[autor]</td></tr>
          <tr> <td><font>$row[preview]</td></tr>
          <tr> <td><a href=\"../news/vermas.php?id=$datos[id]\">Ver mas</a></td></tr>
                    \n"
;
          
     

Es que mi web completa se basa en mostrar datos de una BD

Código PHP:
include("class.NokTemplate.php");
$html=new NokTemplate("templates");
$html->cargar('tCuerpo','1.php');
$html->asignar('TITULO','Test 1 de Templates');
$html->asignar('CONTENIDO',$texto);
$html->expandir('FINAL','tCuerpo');
$html->imprimir('FINAL'); 
Por fa alguien que me enseñe bien a usar este tipo de clases.

Leyendo por aqui en el foro habien puesto un link a documentacion para hacerse uno mismo un motor de templates pero.........no hay algo en español?
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #6 (permalink)  
Antiguo 17/01/2003, 13:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
MSDack ..

La forma de usar el motor de templates que has puesto no es la filosofia de un sistema de template.

En el fondo .. usar un motor de templates "Sea cual sea" .. se trata de separar 100% tu código de tu programación ...

Para casos como el de generar tablas dinamicas con un motor de templates se usan los "bloques" y definiciones de estos que todo motor de templates incorpora y usa de alguna u otra forma (método) ...

Y todo eso se hace para dejar en la "template" el HTML puro y via el motor de template y PHP se le asigana valor a las variables que intervengan ..

Por ejemplo .. ese "bloque" de HTML lo dejarias en la template y solo le pasarias valores a esas actuales $variables via sus tag caracteristicos:

template.html
Código PHP:
<tr> <td><fontEnviado el   {FECHA} </td></tr>
                    <
tr><td><font><b>{DATOS_TITULO}[titulo]</b>  Enviado por {DATOS_AUTOR}</td></tr>
          <
tr> <td><font>{PREVIEW}</td></tr>
          <
tr> <td><a href="../news/vermas.php?id={DATOS_ID}\">Ver mas</a></td></tr> 
codigo.php
Código PHP:
<?
// etc
$html->asignar('FECHA',$fecha);
$html->asignar('DATOS_TITULO',$datos[titulo]);
$html->asignar('DATOS_AUTOR',$row[autor]);
// etc ...
?>
Mas o menos esa es la forma de trabajar .. le falta la parte de integrar el <-- bloque --> para que sea "reutilizado" en partes como ese mismo código q es un bucle ...

Un saludo,

Última edición por Cluster; 17/01/2003 a las 13:29
  #7 (permalink)  
Antiguo 17/01/2003, 13:40
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
osea

template .html
Código PHP:
<tr> <td><fontEnviado 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

Código PHP:
$query "select * from news order by id desc ";
$resp mysql_query($query) or die("Error en consulta");
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"];
}


include(
"class.NokTemplate.php");
$html=new NokTemplate('templates');
$html->cargar('NEWS','template.html');
$html->asignar('FECHA',$fecha);
$html->asignar('TITULO',$titulo);
$html->asignar('AUTOR',$autor);
$html->asignar('PREVIEW',$preview);
$html->asignat('ID',$id);
$html->expandir('FINAL','NEWS');
$html->imprimir('FINAL'); 
si no es asi entonces como?

no hay documentacion en español sobre templates aparte de lo de Nok?
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #8 (permalink)  
Antiguo 17/01/2003, 13:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En español .. no se .. (ademas ten en cuenta que cada "motor" de templates tiene su propia forma de trabajar y métodos .. aunque mas o menos en lo mas básico todos se parecen mucho).

En ingles si q se de varios artículos sobre el tema (mas bien manuales/tutoriales de uso de Smarty .. FastTemplate .. y otros motores de Templates clásicos ...). www.phpbuilder.com .. www.devshed.com www.devarticles .. etc .. ya sabes .. los de siempre.

Ahh..
A ese codigo de la template .. le haria falta meter los tag de "Bloque" y tratarlos como tan en el codigo con sus "expandir" y demas .. Así solo si lo ejecutas solo veras el ultimo resultado de esas variables en el bucle pues se "chafa" a cada pasada lo mismo en la template.

Un saludo,

Última edición por Cluster; 17/01/2003 a las 13:58
  #9 (permalink)  
Antiguo 17/01/2003, 14:13
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Sabes igual no te entendi el uso del template pero supongo que en algun momento lo entendere
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #10 (permalink)  
Antiguo 17/01/2003, 14:59
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
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
  #11 (permalink)  
Antiguo 17/01/2003, 15:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
jeje Nok .. a eso me referia a usar bloques .. mas que nada para cuando se editan las "templates" en un editor "visual" (Dreamweaver .. etc) se aprecia mejor como queda todo en su ubicación (claro, imaginandose q puede haber mas iteracciones de los bloques y tal .. xD).

Un saludo,
  #12 (permalink)  
Antiguo 17/01/2003, 22:54
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
OK, mas menos lo entendi pero,,,,,, como dices lo de los bloques seria algo asi?

Código PHP:
<!--inicioBloque TABLA-->
<
table>
{
FILAS}
</
table>
<!--
finBloque :TABLA-->

<!--
incioBloqueFILAS-->
<
tr> <td><fontEnviado el {FECHA} </td></tr>
<
tr><td><font><b>{TITULO}</bEnviado por {AUTOR}</td></tr>
<
tr> <td><font>{PREVIEW}</td></tr>
<
tr> <td><a href="../news/vermas.php?id={ID}">Ver mas</a></td></tr>
<!--
finBloque FILAS--> 
Ahora el codigo del template seria?.....................


ademas si yo hago un template , estoy generando salida al navegador y como hago para por ejemplo poner algunos header o start_session() y cosas asi que deben ir antes que cualquier salida al navegador?
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 17/01/2003 a las 23:13
  #13 (permalink)  
Antiguo 18/01/2003, 07:08
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Claro, la definicion de bloques seria algo como lo que pusiste, con la salvedad que ahora en la version 1.1.0 de Noktpl puedes anidar los bloques. es decir

defBloques.html
Código PHP:
<!--inicioBloque BlqTABLA-->
<
table>
{
FILAS}
   <!--
incioBloqueBlqFILAS-->
   <
tr> <td><fontEnviado el {FECHA} </td></tr>
   <
tr><td><font><b>{TITULO}</bEnviado por {AUTOR}    </td></tr>
   <
tr> <td><font>{PREVIEW}</td></tr>
   <
tr> <td><a href="../news/vermas.php?id={ID}">Ver  mas  </a></td></tr>
<!--
finBloque BlqFILAS-->
</
table>
<!--
finBloque :BlqTABLA--> 
luego desde el codigo, solo tienes que indicar donde y cuales son los bloques

Código PHP:
   ...
   
//Cargamos el template
   
cargar('tplTabla','defBloques.html');

   
//Indicamos que los bloques estan en el template
   // tplTabla y que se llaman BlqTABLA y BlqFILAS.
   
definirBloque('BlqTABLA''tplTabla');
   
definirBloque('BlqFILAS''tplTabla');

   
// Despues de esto los bloques son tratados como si
   // fueran simples templates. 

Saludos
Nok.
  #14 (permalink)  
Antiguo 18/01/2003, 09:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
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,
  #15 (permalink)  
Antiguo 18/01/2003, 09:20
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
OK gracias Nok y Cluster ya lo entendi y empezare a trabajar ahora mismo en ello
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #16 (permalink)  
Antiguo 18/01/2003, 09:55
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Pos e probado y me da el siguiente error

(NokTemplate) Error: Bloque "BLOQUETABLA" inexistente dentro del Template.

y resulta que en mi template tengo esto

Código PHP:
<html>
<
head>
<
link rel="stylesheet" type="text/css" href="../includes/estilo.css">
<
script language="Javascript"  src="../includes/js.js"></script>
<title>{TITULO}</title>
</head>
<body>
<!--inicioBloque : BLOQUETABLA-->

<table align="center" width="80%" background="../imagenes/fondo.gif">
{FILAS}

<!--incioBloque : BLOQUEFILAS-->
<tr>
<td>
<a href="../index.php?cont=principal">
<img src="../imagenes/principal.gif" border="0">
</a>
</td>
<td>
<a href="../index.php?cont=descargas">
<img src="../imagenes/descargas.gif" border="0">
</a>
</td>
</tr>
<!--finBloque : BLOQUEFILAS-->

</table>
<!--finBloque : BLOQUETABLA-->
</body>
</html> 
y el code php es este
Código PHP:
include("class.NokTemplate.php");
$html= new NokTemplate("../templates");
$html->cargar('HEADER','header.tpl');
$html->definirbloque('BLOQUETABLA','HEADER');
$html->definirbloque('BLOQUEFILA','HEADER');
$html->asignar('TITULO','MSDark::.');
$html->expandir('FILAS','+BLOQUEFILA');
$html->expandir('FINAL','BLOQUETABLA');
$html->imprimir('FINAL'); 
Resulta que tengo los templates en la carpeta templates y la clase y el archivo que meda ese error dentro de la carpeta includes

Por que me da ese error si los bloques si existen en el template
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 18/01/2003 a las 09:59
  #17 (permalink)  
Antiguo 18/01/2003, 10:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La sintax que debes emplear para llamar a un bloque debe ser:

Código PHP:
<!-- inicioBloqueBLOQUETABLA --> 
fijate en los espacios que contiene entre el "tag" de bloque y el nombre mismo del bloque ...

Si ves el código de NokTemplates veras esto:

Código PHP:
var $_tagsBloqueArray = array('abrir' => '<!-- inicioBloque:''cerrar' => '<!-- finBloque:''close' => '-->'); 
Eso define la "sintax" de ese tag en concreto .. Implementar una lógica para identificar si pusistes <!--finbloque : ... o <!-- finbloque : ... o cualquier combinación posible bajaría el rendimiento del "parser" de la template .. tan solo para darte la comodidad a ti como programador de escribir el código como te de la gana .. La idea es que uno como programador respete la sintax correcta (como por ejemplo hace XML q no pasa ni una como por ejemplo HTML y los navegadores q "Tragan" lo q le hechen ..)

Tal vez otros motores de templates sean mas "permisivos" a la hora de "parsear" la template en busca de sus tag propios ... esta de Nok por lo menos es estricta en ese aspecto ..

(Nok jeje .. ya tienes una FAQ para la documentación . jeje:
P: ¿Porqué no me reconoce un bloque si está definido ? ..
R: .. por lo dicho xD)

Un saludo,

Última edición por Cluster; 18/01/2003 a las 10:40
  #18 (permalink)  
Antiguo 18/01/2003, 10:59
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
ok gracias, no me habia dado cuenta de eso

xD


Nok podrias ponerte las FAQ's como dijo cluster+




Lo probe asi como me dijiste cluster

<!-- inicioBloque: BLOQUETABLA -->
<!-- finBloque : BLOQUETABLA -->

pero igual me da ese error de que no existe el bloque en el template
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 18/01/2003 a las 11:06
  #19 (permalink)  
Antiguo 18/01/2003, 12:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Código PHP:
<!-- finBloqueBLOQUETABLA --> 
No se si se te habrá pasado .. pero fijate bien .. finbloque: .. junto el : con el codigo del tag .. Y así con todoooss los tag: q se usen ..

Código PHP:
<!-- codigonombre --> 
Y .. bueno, probé tu propio código tal cual y con la sintax correcta .. y me funcionó .. por eso llegué a esa conclusión pues siempre habia trabajado con la sintax correcta de las llamadas a esos tag del template y nunca lo habia puesto "mal" ..

Un saludo,
  #20 (permalink)  
Antiguo 18/01/2003, 16:34
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Ups!!!!!!!!1

ok ya entendi


jejje!
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #21 (permalink)  
Antiguo 21/01/2003, 22:36
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Ok ya estoy probando que tal lo de los templates y e creado un nuevo diseño pero..... no me muestra nada,

PANTALLA BLANCA!!!!!!!

miren www.msdark.com.ar/paginav1.1

no me da error ni nada, solo muestra la pantalla blanca el codigo es el siguiente

Código PHP:
$html= new NokTemplate("/home2/matiasc/public_html/paginav1.1/templates");
$html->cargar('HEADER','header.htm');
$html->asignar('TITULO','MSDark::.');
$html->asignar('VISITA',$_SESSION["msdnick"]);
$html->asignar('FECHA','$nday de $month de date("Y")');
$html->asignar('USER','$num');
$html->asignar('TOTALES','usuarios_totales()');
$html->asignar('ONLINE','usuarios_activos()');
$html->asignar('24','usuarios_24h()');
$html->expandir('NADA','HEADER');
$html->expandir('FINAL','NADA');
$html->imprimir('FINAL'); 
Cual es mi error por que no me muestra nada.

Gracias
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #22 (permalink)  
Antiguo 21/01/2003, 22:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pon el código de la Template q usas tambien ..

De todas formas ya se ve:
$html->expandir('NADA','HEADER');

ese 'NADA' .. es un bloque? .. si es así no lo has definido antes ..

Un saludo,
  #23 (permalink)  
Antiguo 21/01/2003, 23:04
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
a ver no entiendo mucho como ocupar esto de los templates y leyendo la documentacion de NokTemplates sale esto

Código PHP:
// Para ir terminado expandimos el contenido del template tCuerpo
    // en una variable cualquiera, que puede no estar en ningun Template.
    // Simplemente para intercambiar los valores de las variables que contenga
    // tCuepo 
por lo que yo cree esa variable.

Por fa si no es asi me pueden explicar bien como trabajar con esta clase.

gracias
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #24 (permalink)  
Antiguo 21/01/2003, 23:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
quita esta:
$html->expandir('NADA','HEADER');

y usa solo:
$html->expandir('FINAL','HEADER');

El método expandir hace "sustituir" lo que has cargado en el segundo parametro sobre el primero .. que ha de estar definido .. sea una {VARIABLE} .. o un <!-- bloque -->

Ahí .. NADA no esta definido a "nada" valga la rebundancia ( o por lo menos sin ver la template q usas no se ve si de verdad lo usas o no ..)

Un saludo,
  #25 (permalink)  
Antiguo 22/01/2003, 08:00
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Como bien dice cluster, tienes que quitar

$html->expandir('NADA','HEADER');

En tu codigo tienes lo siguiente:

Código PHP:
//Expandes el template HEADER dentro de la variable NADA
$html->expandir('NADA','HEADER');
//Expandes el template NADA dentro de la variable FINAL
//Pero como el template NADA no existe estas volcando dentro de la variable
//Final ningun contenido.
$html->expandir('FINAL','NADA');

// y por eso cuando mandas imprimir no te muestra nada.
$html->imprimir('FINAL'); 
Saludos
Nok.
  #26 (permalink)  
Antiguo 22/01/2003, 10:45
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Ok ya lo entendi ahora mi pregunta es:...................


al hacer un while($row=mysql_fetc_array($result))

y al hace un echo "<table lalalalalal>
esa tabla se repite varias veces
pero ahora con el template como lo hago para que se repita?!!!!!


__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 22/01/2003 a las 13:43
  #27 (permalink)  
Antiguo 22/01/2003, 11:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Definiendo bloques ...

Create una template y la llamas por ejemplo:
bloques.html

ahí te creas el bloque de la tabla (HTML) q se repita .. definiendolo como dice la documentación .. Aunque lo q será q repitas será mas bien filas de esa tabla (<td></td>) y no toda la tabla ..

En tu script PHP .. lo cargas ($html->cargar()) .. y defienes el bloque con su metodo correspondiente ...

El resto .. sigue leyendo el manual de las NokTemplates .. se trata de ir "expandiendo" cada "bloque" a cada iteracción de tu blucle (con un +bloque ...).

Un saludo,
  #28 (permalink)  
Antiguo 22/01/2003, 13:36
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Pero como, disculpen mi ingnorancia pero debo preguntar


Me puenden mostrar como, osea con code.



Gracias de antemamo


A PD:
Estaba probando e hice un header.php y un footer.php que contiene los templates header.html y footer.html

y en e index se incluyen los .php pero me da error de que no se puede redeclarrar NokTemplate, entoncees borre del footer.php la parte de new NokTemplate y ya no me daba el error pero en ves de mostrarme el footer.html me repitio header.html


Que puedo hacer en ese caso?

Acaso debo hacer pagina por pagina y no puedo hacer lo de header y footer para incluirlo en cada seccion?
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #29 (permalink)  
Antiguo 22/01/2003, 15:32
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
en http://jpw.com.ar/noktemplate/ el ejemplo 2 te explica como formar las tablas.

Con respecto a lo de incluir la clase y causa el error de redefinicion, te aconsejo utilizar require_once() o include_once() que solo incluyen el archivo una sola vez por mas que se trate de volver a incluirlo.

Con respecto a lo de header.php y footer.php explicate un poco mejor y postea un poco de tu codigo.

Saludos
Nok
  #30 (permalink)  
Antiguo 22/01/2003, 18:47
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
ok gracias Nok pero no se sere medio tonto pero no entendi lo da las tablas, osea se que se hace por medio de definir bloques y eso y ademas ahi vi un for y cosas.


Sobre lo de footer y header me refiero a que yo hice 2 templates

1.- header.htm que se carga en el header.php que lo incluyo en index.php
2.- footer.htm que se carga en footer.php que tambien lo incluyo en index.php

Resulta que en ambos (header y footer.php) puse el include de la clase e instancie el objeto osea $html=new NokTemplate("../templates");

y viendo cada uno por separado funciona pero.......



al poner el index.php que es donde ambos estan incluidos me da el error de que no puedo redifini NokTemplate.

y solo me muestra el header.php (que esta incluido primero) y no el footer.php
Código PHP:
//en index.php
include("header.php");
include(
"inicio.php");
include(
"footer.php"); 
como debo hacerlo para tener estos 2 templates e ir incluyendolos en todas mis paginar y a la ves tener otro template dependiendo de la funcion e incluirlo en el index.php

de esta forma
Código PHP:
switch ($seccion)
{
case 
principal:
include(
"header.php");
include(
"inicio.php");//Este tambien seria un template
include("footer.php");
break;

case 
news:
include(
"header.php");
include(
"noticias.php");
include(
"footer.php");
break;

case 
descargas:
include(
"header.php");
include(
"descargas.php");
include(
"footer.php");
break;

default:
case 
principal:
include(
"header.php");
include(
"inicio.php");
include(
"footer.php");

Siendo cada uno de esos un template para asi poner en todas las secciones el header.php, footer.php y otro.php c/u como template


No se si me explique bien , espero haberlo echo

Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.