Foros del Web » Programando para Internet » PHP »

Problema con NOKTemplate

Estas en el tema de Problema con NOKTemplate en el foro de PHP en Foros del Web. Hola, he empezado a utilizar templates y me he decidido por el nok, pero tengo un problemilla. Tengo esta pagina como pruebas.php Código PHP: <?php ...
  #1 (permalink)  
Antiguo 17/08/2003, 08:38
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Problema con NOKTemplate

Hola, he empezado a utilizar templates y me he decidido por el nok, pero tengo un problemilla. Tengo esta pagina como pruebas.php
Código PHP:
<?php
include ('class.NokTemplate.php');
$html = new NokTemplate('./plantillas');
$html->cargar('tCabecera','cabecera.htm');
$html->cargar('tmenu','menu.php');
$html->cargar('tpage','notice.php');
$html->cargar('tinfo','info.php');
$html->asignar('titulo','Pagina nueva');
$html->expandir('MENU''tmenu');
$html->expandir('PAGINA''tpage');
$html->expandir('INFO''tinfo');
$html->expandir('FINAL''tCabecera');
$html->imprimir('FINAL');
?>
y dentro de info(x ejemplo) tengo codigo HTML y codigos php de forma:
Código PHP:
<?php
//codigo
?>
pero parece ser que como está dentro de la otra pagina esos codigos php no me los resuelve, y aparece el codigo php como codigo html cuando cargo la pagina...
Como puedo hacer para que me comprenda esos codigos?
  #2 (permalink)  
Antiguo 17/08/2003, 17:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En una "template" no puedes ejecutar código PHP .. para eso ya tienes tu código PHP donde llamas a tus templates -> asignas valores a tus variabels que tienes en tus templates {nose} ... o incluso defines bloques y los usas ...

Osease, ... en tu código actual donde usas los "echo" para mostrar algún valor .. ahora tendrás que definer en tu template que uses/bloque ... donde quieres representarla tipo:

{mivariable}

Y tu código php (el que ya tienes de prueba.php donde llamas a noktemplate y tu resto de partes de tu plantilla ..)

$mivariable="Nose .. algún proceso .. bla blabla";
$html->asignar('mivariable',$mivariable);


Fijate bien .. que usar un motor de templates no se trata sólo de llamar a unos bloques de HTML "fijos" como así lo estás haciendo en tu ejemplo sino de separar el código PHP completamente de tu presentación (de tu HTML) ...

El "motor de templates" lo que hace es "leer" tu template .. buscar esos bloques o {variables} y reasignarle su valor correspondiente usando los métodos que tienes a tu disposición (como los del ejemplo que puse).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 17/08/2003, 18:51
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Te recomiendo que visites el sitio oficial de NokTemplates, para hacerle cualquier tipo de consultas a su creador, Nok :

http://www.jpw.com.ar

Alli hay un mini foro de consultas.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #4 (permalink)  
Antiguo 18/08/2003, 18:15
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
y si quiero que los codigos php estén en otro archivos y los cargue esa pagina a esos archivos ocmo se haria?
  #5 (permalink)  
Antiguo 18/08/2003, 21:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
?¿?¿? ... Pues los llamas con include() o require() ... Como en cualquier script PHP vulgar y corriente ...

¿Entendistes como funciona un sistema de "templates" como el Nok (todos son iguales más o menos).?

¿Probastes los ejemplos de la web oficial de NokTemplates?

Empieza por comprender como funcionan (sólo cómo funcionan .. por el momento) .. Cuanto más claro lo tengas mejo...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 19/08/2003, 09:49
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
lo siento x mis dudas, pero esq n mentero ni con los ejemplos
Resulta que lo hago asi:
Código PHP:
<?php
include ('class.NokTemplate.php');
$html = new NokTemplate('./plantillas');
$html->cargar('tCabecera','cabecera.htm');
$html->cargar('tmenu','menu.php');
$html->cargar('tinfo','info.php');
$html->asignar('titulo','pagina nueva');
$noticias=include("plantillas/noticias.php");
$html->asignar('PRINCIPAL',$noticias);
$html->expandir('MENU''tmenu');
$html->expandir('INFO''tinfo');
$html->expandir('FINAL''tCabecera');
$html->imprimir('FINAL');
?>
en noticias.php tengo un script que me imprime unas tablas, la cuestion es que esas tablas se imprimen primero, y luego se imprime el resto de la pagina, y eso que en cabecera.htm tengo bien situado la variable {PRINCIPAL} y luego lo expando en final... pero nose xq se ejecuta antes q los demas
  #7 (permalink)  
Antiguo 20/08/2003, 05:26
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
podriais hacerme un ejemplo aunque sea, cn una plantilla llamando a un archivo php y que dentro de él haiga un resultado con print o echo, y que salga en una etiqueta como {PHP} en un archivo html?
Esq a mi no me sale y para guiarme un poco...
  #8 (permalink)  
Antiguo 20/08/2003, 09:05
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Hola, en realidad para utilizar templates tienes que ser un poco mas ordenado, es decir, te obliga a serlo.
El caso que planteas no es tan directo como piensas hacerlo, partiendo de la idea de que noktemplate no puede recibir archivos con codigo php como parametro, ya que no los interpretara y no obtendrás el resultado esperado.
Para realizar eso puedes hacer algo asi:

info.php
Código PHP:
<?
    $info 
= new NokTemplate();
    ...
    
// generamos nuestra parte info.
    // SIN GENERAR SALIDA HTML!!
    
...
    
$info->expandir('MAIN''tpl');
    
?>
index.php
Código PHP:
<?
    
include_once('info.php');
    
$html = new NokTemplate();
    ...
    
// Asignamos a la var PHP el contenido de MAIN en el tpl
    // $info, mediante el metodo exportar.
    
$html->asignar('PHP'$info->exportar('MAIN'));
    
// generamos nuestra pagina principal.
    
...
    
$html->expandir('PRINCIPAL''tpl');
?>
Eso es una manera, talves no la mejor, pero es lo mas basico y sencillo. Ademas funciona.

Saludos
Nok.
__________________
La casa de Noktemplate.
Zonaphp.com - Php en español.

¿Que esperas de NokTpl 2? Deja tu comentario.

Blog
Mas o menos asi .
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 10:46.