Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/02/2010, 07:29
Hidek1
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
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