Foros del Web » Programando para Internet » PHP »

templates

Estas en el tema de templates en el foro de PHP en Foros del Web. hola he oido hablar de los templates en un post de este for, alguien me podria decir que son los templates y si estoy en ...
  #1 (permalink)  
Antiguo 14/11/2002, 16:34
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
templates

hola

he oido hablar de los templates en un post de este for, alguien me podria decir que son los templates y si estoy en el foro correcto.

Alguno sabe algun manual para aprender a usarlos, muchas gracias.

He oido que se podia con ellos introducir la misma estructura en varias páginas diferentes facilmente

Gracias por adelantado
  #2 (permalink)  
Antiguo 14/11/2002, 16:45
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 22 años, 9 meses
Puntos: 0
Pues esa es la idea básica, dar un mismo aspecto o estructura general a varias páginas de una forma sencilla.

Los templates funcionan de una forma similar a lo siguiente:

digamos que quieres definir una estrucutra estandar para tus páginas de una barra lateral, un encabezado y un contenido, entonces vas a crear un template con esa estrucutra. Este template, variando según el motor de templates que utilices, va a tener una estrucutura similar a esta:

Código:
<table width='100%'>
  <tr>
    <td colspan='2'>{ENCABEZADO}</td>
  </tr>
  <tr>
    <td>{BARRA_LATERAL}</td>
    <td>{CONTENIDO}</td>
  </tr>
</table>
como verás, dentro del template hay textos entre llaves (es algo estándar entre muchos motores de templates), estos son variables del template.

Tu programa entonces deberá inicializar el motor de templates, cargar ese template y, por medio de ciertas funciones o métodos propios del motor que uses, asignar valores a esas variables.

Como segunda ventaja se puede ver que es muy sencillo cambiar el look de un sitio, con solo cambiar los templates, sin tocar codigo, o también cambiar el layout o la distribución de las partes de un sitio con solo tocar su template.

saludos,

chubu

pd.: si quieres ejemplos más especificos pues solo tienes que pedirlos :)
__________________
:pensando:hay algo mal que no anda bien
  #3 (permalink)  
Antiguo 14/11/2002, 16:54
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 22 años, 9 meses
Puntos: 0
me olvidaba, algunos motores de templates para php son

NokTemplate (seguimos haciendo bandera!!! :))
Smarty
FastTemplate

te recomiendo NkTemplates por una cuestión muy sencilla, es simple de utilizar, y está en español...

saludos,

chubu
__________________
:pensando:hay algo mal que no anda bien
  #4 (permalink)  
Antiguo 14/11/2002, 17:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
jejeje Chubu .. con esta promocion Nok va tener q ponerse las pilas con la documentación de las NokTemplate 1.10 xDD ..

Bueno .. fuera bromas .. eso, no hay mejor manual q la propia documentación de la template q uses .. Una template (motor) como bien describio Chubu .. no es una(s) funciona de PHP propiamente .. sino una "técnica" .. la cual cada sistema de templates lo hace "mas o menos" de la misma forma (por lo menos a la hora de diseñar la propia Template como en el ejemplo de Chubu ..).

Empieza con las NokTemplates .. ves haciendo algunos ejemplitos .. y cuando te acostumbres miras otros sitemas de templates a ver si te ofrecen alguna funcionalidad q podrisa usar o te resulte necesario ...

Yo por lo menos con NokTemplate estoy bastante contento .. y mas con la version 1.10 (la q hay ahora para descargar) .. Hechaba en falta el tema de bloques anidados en la template y ahora ya lo hace ;)

Un saludo, bienvenido a "Template's world"
  #5 (permalink)  
Antiguo 15/11/2002, 05:56
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
muchas gracias a los 2, estoy descubriendo la cantidad de cosas que se pueden hacer en el mundo del web.
Un saludo
  #6 (permalink)  
Antiguo 18/11/2002, 22:31
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 23 años, 7 meses
Puntos: 0
Hola, bueno de momento no tengo tiempo de actualizar la documentacion :( de mi clase, asique tratare de explicarte mas o menos lo de las variables.

en tu plantilla o template, tal como lo es el ejemplo de chubu, tienes definidas variables del tipo {CONTENIDO}, {ENCABEZADO}, etc. Esto te sirve para que desde tu script php, puedas asignarle a esta variable el valor que desees, es decir en tu pagina final lo que hayas asignado a la variable CONTENIDO, sera reemplazado por NokTemplate (o el motor que sea) por el valor que le hayas asignado en tu script.
Por ejemplo:
si tu template esta en un archivo "temp.html" y contiene esto:
<table>
<tr>
<td>{VALOR}</td>
</tr>
</table>

Y luego en tu script tienes esto:
Código PHP:
   <?
   $html 
= new NokTemplate();
   
$html->cargar('template''temp.html');
   
$html->asignar('VALOR''Esta es una prueba de NokTpl');
   
$html->expandir('MAIN','template');
   
$html->imprimir('MAIN');
   
?>
Deberias obtener algo asi:
<table>
<tr>
<td>Esta es una prueba de NokTpl</td>
</tr>
</table>

Bueno eso seria mas o menos lo que hace un template con las variables, en realidad hay cosas un poco mas elaboradas, pero no tanto. Puedes consultar la documentacion existente para mas informacion, y si sigues sin entender, pues pregunta.

Espero que en breve me desocupe de mis tareas diarias para poder actualizar la documentacion.

Saludos Nok.

PD: jeje, Muchachos sigan asi con la propaganda... :) y gracias. Espero poder generar una version mas copada dentro de poco. Escucho sugerencias.
  #7 (permalink)  
Antiguo 19/11/2002, 09:42
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años, 8 meses
Puntos: 5
FAST TEMPLATES

Yo uso FASTEMPLATES.
Excelente documentacion del propio creador.

Tambien ahi documentacion extra en:
www.devshed.com Ahi estan las URL de la web del creador.
www.phpbuilder.com

Ahi ya tienes algo probado.
A estudiar.

Saludos
Si andas con tiras y aflojas, estudia...
__________________
Hacerlo Bien Haciendo el Bien.
Jaso ezazu agur bero bat.
(c) 2002. Made in Chile.
Mi sistema es:
Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x)
!Califica este POSTEO¡
  #8 (permalink)  
Antiguo 22/11/2002, 10:17
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
nueva duda

a ver si me podeis responder a esto.

Ya manejo un poco las noktemplates, q por cierto me parecen muy buenas.
Mi problema es el siguiente:

tengo una página que es cuerpo.php y quiero que se repita constantemente, eso me lo hace bien, lo que pasa es que en esta página pongo una variable CONTENIDO, la cual la hago extender desde una pagina llamada contenido.php.
Hay que decir que la variable contenido se encuentra en una capa (<div....>{CONTENIDO}</div>).

Cuando en contenido.php pongo codigo html me funciona como quiero, pero en cuanto pongo codigo php ya no me sale nada.

A que puede ser debido esto??
  #9 (permalink)  
Antiguo 22/11/2002, 14:53
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 23 años, 7 meses
Puntos: 0
hola, podrias ser un poco mas especifico?
cual es el codigo php que colocas?
cual es el resultado que esperas?
cual es tu script?

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

¿Que esperas de NokTpl 2? Deja tu comentario.

Blog
Mas o menos asi .
  #10 (permalink)  
Antiguo 22/11/2002, 18:09
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
Esta es la página que ejecuto, se llama pagina.php

Código PHP:
<?php
    
include ('class.NokTemplate.php');
    
$html = new NokTemplate('templates');
    
$html->cargar('tCuerpo','cuerpo.php');
    
$html->cargar('tContenido','contenido.php');
    
$html->asignar('TITULO','ElEnclave.com');
    
$html->expandir('CONTENIDO''tContenido');
    
$html->expandir('FINAL''tCuerpo');
    
$html->imprimir('FINAL');
?>
Luego en cuerpo.php lo que quiero ejecutar lo hace bien, excepto esta parte

<div style= "height: 500px; width: 750px; left: 180px; top: 150px; position: absolute; visibility: visible; z-index:15; font-size: 14pt; font-family: verdana; text-align: center; background-color: #000000">
{CONTENIDO}
</div>

y en contenido.php no me ejecuta nada de de nada, ni aunque ponga un simple echo, y no se a que puede ser debido, e estado probando y no me sale.

Un saludo Nok y gracias por tu interes, y gracias por tus templates, me estas solucionando la vida ....jejeje.

Un saludo
  #11 (permalink)  
Antiguo 22/11/2002, 19:00
Avatar de Virgil
Colaborador
 
Fecha de Ingreso: agosto-2002
Ubicación: Guadalajara
Mensajes: 872
Antigüedad: 22 años, 3 meses
Puntos: 3
Por cierto, la palabra "template(s)" tiene su equivalente exacto en español, a saber: "plantilla(s)".
__________________
Un Saludo,

Virgil


"Un viaje de mil leguas comienza con el primer paso"
Lao Tse
  #12 (permalink)  
Antiguo 22/11/2002, 23:53
Avatar de cauly  
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires
Mensajes: 726
Antigüedad: 22 años, 9 meses
Puntos: 0
Perdón NOK.

Acá van unas nociones básicas de FastTemplate
http://datafull.com/ats/notas/nota.php?codigo=16

Saludos
  #13 (permalink)  
Antiguo 24/11/2002, 09:30
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
nada, que sigo sin conseguir lo de 2 posts mas arriba.
El problema esq como ya empece con Noktemplates no me gustaria cambiar de plantillas porq si no se que me voy a acabar liando. A ver si me podeis echar una manita....

Un saludo
  #14 (permalink)  
Antiguo 24/11/2002, 09:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Lo que estas pretendiendo hacer con el gestor de templates (plantillas ... en este caso NokTemplates) .. No puedes hacerlo.

Es decir, el motor de templates .. cunado tu haces un:
$html->cargar('tContenido','contenido.php');

Lo que hace es leer el fichero .. Para luego via un $html->asignar() busque los tag {...} y sustituya ese {ALGO} por el valor de lo que asignes ..

Lo que NO hace es "ejecutar" script.php y si este hace algun "echo" lo deje en {ALGO} ...

Para ello .. lo que tienes que hacer es "volcar" el proceso de script.php a una variable ...

La pregunta es:
¿que hace ese script.php? q lo intentas $html->cargar() ..? Es PHP codigo ejecutable? tiene HTML por medio? ...

Bueno, recuerda lo q comento mas arriba .. Tienes que dejar en una variable el "texto" o lo que tenga que generar ese script.php ... o llamar a funciones de ese script.php que devuelvan un valor .. pero solo el valor .. el formato lo deberia dar el HTML de la template q estes usando.

Un saludo,
  #15 (permalink)  
Antiguo 24/11/2002, 09:55
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
mira, yo lo que quiero hacer esq que cuerpo.php sea el trozo de página que se repita en todas las paginas de mi site, y eso parece que si lo consigo de la forma que he puesto antes. Lo que pasa es que dentro de cuerpo.php hay una capa, que es la que he especificado antes, y dentro de esa capa esta {CONTENIDO} y lo que intento hacer es que esta variable vaya cambiando dependiendo de la página que sea.

Habia puesto para probar en contenido.php esto

Código PHP:
<?
include("funciones.php");
$link=Conectarse();
$id=1;
$result=mysql_db_query("proyecto","select * from noticias where autor like 'Mario'");
$row=mysql_fetch_array($result);
echo 
"<center>";
echo 
$row[titulo];
echo 
"</center>";
?>
y de aqui no sale nada en la capa. Lo que no se es hacer lo que dices de volcar este script por ej en una variable para que se meta en CONTENIDO. No se si me explico, pero tengo la picha hecha un lio......jejeje

Muchas gracias

Un saludo
  #16 (permalink)  
Antiguo 24/11/2002, 16:05
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
LO LOGRÉ......

Bueno señores, por fin coji el concepto de las Noktemplates, las estaba usando mal pero a partir de lo que me ha dicho Cluster lo he pillado y de verdad que esta manera de programar es genial...

Yo lo recomiendo a todos.....jejejeje vivan las plantillas.

Bueno ya no hace falta que me resolvais la duda de arriba y muchas gracias a todos los que me han ayudado.

Un saludo

Por cierto, teneis razon, estudiando el problema se saca mejor que preguntando...
  #17 (permalink)  
Antiguo 24/11/2002, 21:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Me alegro q pillases el concepto de las templates y lo mas importante de la filosofia de "programar" .. q no es mas que leer, documentarse y probar por uno mismo .. No dejar que te lo den todo hecho .. así solo te resuelven el problema puntual y nunnnnca aprendes el "concepto".

Yo soy de la filosofia de "Orientar" y no "hacer código a la carta" .. por eso mis mensajes la mayoria son un poco de "bla bla bla" (teoria) y remito a un manual/articulo u ejemplo al respecto .. Algunos se enfadan si no les das el "codigo mascadito" .. pero por mi parte no es mi estilo .. El código a la carta ya lo hago en mi trabajo (y no por amor al arte xD) .. Los consejos pueden ser GNU

Un saludo,
  #18 (permalink)  
Antiguo 25/11/2002, 11:21
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 8 meses
Puntos: 2
volcar en una variable

Cita:
Mensaje Original por mariog
mira, yo lo que quiero hacer esq que cuerpo.php sea el trozo de página que se repita en todas las paginas de mi site, y eso parece que si lo consigo de la forma que he puesto antes. Lo que pasa es que dentro de cuerpo.php hay una capa, que es la que he especificado antes, y dentro de esa capa esta {CONTENIDO} y lo que intento hacer es que esta variable vaya cambiando dependiendo de la página que sea.

Habia puesto para probar en contenido.php esto

Código PHP:
<?
include("funciones.php");
$link=Conectarse();
$id=1;
$result=mysql_db_query("proyecto","select * from noticias where autor like 'Mario'");
$row=mysql_fetch_array($result);
echo 
"<center>";
echo 
$row[titulo];
echo 
"</center>";
?>
y de aqui no sale nada en la capa. Lo que no se es hacer lo que dices de volcar este script por ej en una variable para que se meta en CONTENIDO. No se si me explico, pero tengo la picha hecha un lio......jejeje

Muchas gracias

Un saludo
simplemente cambia el "echo" por "$contenido .=", luego en el script de la plantilla reemplazas el tag {CONTENIDO} CON $contenido
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #19 (permalink)  
Antiguo 25/11/2002, 11:28
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 8 meses
Puntos: 2
tarde

lo siento... meti la cuchara cuando se había volcado el cafe
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #20 (permalink)  
Antiguo 25/11/2002, 11:28
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
Muchas grcias chaudx, ya me di cuenta, y por cierto, arriba YODA, es sin duda el mejor, la saga no seria nada sin el

Un saludo
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:01.