Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Aporte: Usar templates con php

Estas en el tema de Aporte: Usar templates con php en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Classe para utilizar templates (plantillas) en php version 2.8rc Descargar la classe Template por motivos de espacio limite en el foro no la posteo directamente ...
  #1 (permalink)  
Antiguo 22/02/2010, 07:29
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
De acuerdo Aporte: Utilizar templates en php. Classe.Template.php

Classe para utilizar templates (plantillas) en php version 2.8rc

Descargar la classe Template
por motivos de espacio limite en el foro no la posteo directamente aqui..

Métodos de la classe

-> assign_data(Array $data);
-> html(String $id, Array[optional] $data);
-> replaceWith(String $id, $String $data);
-> after(String $id, $String $data);
-> before(String $id, $String $data);
-> append(String $id, $String $data);
-> prepend(String $id, $String $data);
-> table(Array[optional] $attributes, Integer[optional] $rows, Integer[optional] $cols, Array[optional] $content[][]);
-> div(Array[optional] $atributes, String[optional] $data);
-> span(Array[optional] $atributes, String[optional] $data);
-> form(Array[optional] $attributes, String[optional] $content);
-> input(Array[optional] $attributes);
-> render();


Modo de uso

- Creas un template, puede ser en html o un archivo de cualquier extensión, lo importante es que mantengas la estructura de HTML que impone W3C
si no especificas la ruta del template, se genera un template en blanco, al cual se le entregan datos con el metodo html(); ( no se crea ningún archivo )
- incluyes la classe template dentro del archivo php
- instancias la classe entregando como parámetro la ruta del template
- modificas a gusto con los métodos incluidos
- imprimes el template o lo guardas en una variable con el método render();

un ejemplo

template.htm
Código HTML:
Ver original
  1. <title>{titulo}</title>
  2. </head>
  3. <body id="body_id">
  4.  
  5. </body>
  6. </html>

index.php
Código PHP:
Ver original
  1. <?php
  2. include_once 'common.Class/class.Template.php'; // incluyo la classe
  3. $template = new Template("template.htm"); // instancio la classe con el archivo del template
  4. $div = $template->div(array("id"=>"div_id","style"=>"border:1px solid #666"), "Contenido del div"); // creo un div
  5. $template->html("body_id", $div); // inserto el div en la etiqueta body con id = "body_id"
  6. $template->before("div_id","Contenido antes del div");
  7. $template->after("div_id","Contenido despues del div");
  8. $template->append("div_id","(Anexado al div)");
  9. $template->prepend("div_id","(Antepuesto al div)");
  10. $template->assign_data(array("titulo"=>"Ejemplo de Template")); // asigno el titulo
  11. echo $template->render(); // imprimo en pantalla
  12. ?>

todo esto da como resultado
Código HTML:
Ver original
  1. <title>Ejemplo de Template</title>
  2. </head>
  3. <body id="body_id">
  4. Contenido antes del div
  5. <div id="div_id" style="border:1px solid #666">
  6. (Antepuesto al div)
  7. Contenido del div
  8. (Anexado al div)
  9. </div>
  10. Contenido despues del div
  11. </body>
  12. </html>

La explicación de cada método viene incluida en los comentarios de la misma classe.!

Saludos cordiales!
Hidek1.
__________________
More about me...
~ @rhyudek1
~ Github

Última edición por Hidek1; 31/03/2010 a las 14:32 Razón: actualizacion 2.8rc
  #2 (permalink)  
Antiguo 22/02/2010, 07:41
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Aporte: Usar templates con php

Buenisimo compañero!!!!! Gracias por el aportaso!!
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 22/02/2010, 09:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde PHP a PHP orientado a objetos
  #4 (permalink)  
Antiguo 22/02/2010, 10:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Aporte: Usar templates con php

:o vamos a ver que tal
gracias :D!
  #5 (permalink)  
Antiguo 23/02/2010, 09:41
Avatar de mackiechan  
Fecha de Ingreso: junio-2009
Ubicación: Maracay, Venezuela
Mensajes: 51
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: Aporte: Usar templates con php

jajaja gracias compadre, ya la pruebo entonces, al menos ya se quien la hizo xD
  #6 (permalink)  
Antiguo 23/02/2010, 15:49
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Aporte: Usar templates con php

agregado metodo html() a la classe
el cual busca dentro del template una etiqueta html con la id especificada y devuelve o altera su valor

ejemplo:

template.htm
Código HTML:
Ver original
  1. <p id="test"><input type="text" /></p>

index.php
Código PHP:
Ver original
  1. include_once 'common.Class/class.Template.php';
  2. $template = new Template("template.htm");
  3. $input = $template->html("test"); // obtengo lo q hay dentro del tag con id test
  4. $sector = "";
  5. for($i=1; $i<=5; $i++){
  6.     $sector .= $input;
  7. }
  8. $input = $template->html("test", $sector); // inserto el nuevo contenido en el tag con id test
  9. echo $template->render();

el resultado seria este

Código HTML:
<p id="test">
<p id="test"><input type="text" /></p>
<p id="test"><input type="text" /></p>
<p id="test"><input type="text" /></p>
<p id="test"><input type="text" /></p>
<p id="test"><input type="text" /></p>
</p> 
__________________
More about me...
~ @rhyudek1
~ Github

Última edición por Hidek1; 23/02/2010 a las 15:54
  #7 (permalink)  
Antiguo 24/02/2010, 09:15
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Aporte: Usar templates con php

agregados los métodos div() y span(), los cuales generan dinámicamente estas etiquetas.. tambien el metodo replaceWith(), que a diferencia de html(), reemplaza el tag completo del cual se le entregue la id, no solo su contenido!

forma de uso:

Código PHP:
Ver original
  1. <?php
  2. include_once 'common.Class/class.Template.php'; // incluyo la classe
  3. $template = new Template("template.htm"); // instancio la classe con el archivo del template
  4.  
  5. $attributos_div = array("id"=>"div_id", "class"=>"div_class"); // array associativo con los atributos de la etiqueta
  6. $div = $template->div($attributos_div, "contenido del div"); // creo el nuevo div con su contenido
  7.  
  8. $attributos_span = array("id"=>"span_id", "class"=>"span_class"); // array associativo con los atributos de la etiqueta
  9. $span = $template->span($attributos_span, "contenido del span"); // creo el nuevo span con su contenido
  10.  
  11. $template->replaceWith("test", $div); // reemplazo el div con id="test" del template y en su lugar dejo el div creado
  12. $template->html("div_id", $span); // reemplazo el contenido del div creado dinamicamente por el span creado dinamicamente
  13.  
  14. echo $template->render(); // imprimo en pantalla
  15. ?>

el resultado en html seria algo asi

Código HTML:
<div id="div_id" class="div_class"><span id="span_id" class="span_class">contenido del span</span></div> 
cualquier duda, postear aqui..

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 24/02/2010, 11:57
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Aporte: Usar templates con php

métodos agregados

-> after(String $id, $String $data);
-> before(String $id, $String $data);
-> append(String $id, $String $data);
-> prepend(String $id, $String $data);
__________________
More about me...
~ @rhyudek1
~ Github
  #9 (permalink)  
Antiguo 25/02/2010, 07:49
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Aporte: Usar templates con php

agregados los métodos

-> form(Array[optional] $attributes, String[optional] $content);
-> input(Array[optional] $attributes);


arreglados algunos errores de expresión regular.

adjunto un ejemplo de lo q se puede hacer con los formularios!

Código PHP:
Ver original
  1. <?php
  2. include_once 'common.Class/class.Template.php'; // incluyo la classe
  3. $template = new Template("template.htm"); // instancio con el archivo del template
  4. $input = ""; // inicio variable almacenamiento
  5. $datos = array("Nombre", "Edad", "Direccion", "Telefono", "Sitio Web"); // array de datos
  6. for($i = 0; $i < 5; ++$i){ // creo 5 input antecediendolo con el dato correspondiente
  7.     $input .= "<br>".$datos[$i].$template->input(array("type"=>"text", "name"=>$datos[$i]));
  8. }
  9. $form = $template->form(array("id"=>"form_1","method"=>"post","action"=>"")); //creo formulario
  10. $template->assign_data(array("data"=>$form)); // asigno datos al template
  11. $template->html("form_1",$input); // inserto los input en el formulario
  12. echo $template->render(); // imprimo en pantalla
  13. ?>

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 25/02/2010, 12:19
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Aporte: Usar templates con php

nuevas modificaciones, luego are una lista general junto con un manual de uso

ahora el parametro de la ruta del template es opcional
y se agrego el metodo table

doy un ejemplo de uso:

Código PHP:
Ver original
  1. <?php
  2. include_once 'common.Class/class.Template.php'; // incluyo la classe
  3. $template = new Template(); // instancio sin archivo
  4. $datos[1][3] = "test"; // variable de prueba
  5. $tabla = $template->table(array("border"=>1), 2, 3, $datos);
  6. $template->html("",$tabla);
  7. echo $template->render(); // imprimo en pantalla
  8. ?>

como resultado da:

Código HTML:
Ver original
  1. <table border="1">
  2. <tr>
  3. <td>&nbsp;</td>
  4. <td>&nbsp;</td>
  5. <td>test</td>
  6. </tr>
  7. <tr>
  8. <td>&nbsp;</td>
  9. <td>&nbsp;</td>
  10. <td>&nbsp;</td>
  11. </tr>

saludos!
__________________
More about me...
~ @rhyudek1
~ Github

Última edición por Hidek1; 25/02/2010 a las 12:30
  #11 (permalink)  
Antiguo 31/03/2010, 14:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Aporte: Usar templates con php

Buen aporte, esperamos que la descarga de los archivos nunca caduque.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 31/03/2010, 14:45
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Aporte: Usar templates con php

Caducara el dia en q google se caiga..
y si eso pasa .. significara que el mundo se habrá acabado
y ya no habrá necesidad de tener mi classe en internet

asi q no hay de que preocuparse

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #13 (permalink)  
Antiguo 31/03/2010, 14:48
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: Aporte: Usar templates con php

Cita:
Iniciado por Hidek1 Ver Mensaje
y si eso pasa .. significara que el mundo se habrá acabado
EN EL 2012
  #14 (permalink)  
Antiguo 09/06/2010, 01:41
Avatar de oscarenzo  
Fecha de Ingreso: julio-2007
Ubicación: Barcelona
Mensajes: 167
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: Aporte: Usar templates con php

Bastante interesante, me gustaría probarlo, hay algún manual escrito en pdf o algo para poder revisar todas las instrucciones disponibles y demás?

Gracias.

Etiquetas: orden, php, template, proyectos, plantillas
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

SíEste tema le ha gustado a 5 personas




La zona horaria es GMT -6. Ahora son las 06:00.