Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/03/2013, 05:30
cachusan
 
Fecha de Ingreso: septiembre-2011
Mensajes: 219
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: renderizar html php file_get_contents

Cita:
Iniciado por aldo_rengo Ver Mensaje
bueno , a ver, me equivoco en algo? esto es una manera casera de separar la logica de HTML? es una manera case de hacer plantillas como smarty? es una manera casera de hacer MVC como hacen los frameworks? en el caso de tener resultados de una tabla como lo haria..??
Esta función te puede dar un buen ejemplo de como armar lo que necesitas:

Código PHP:
Ver original
  1. <?php
  2.  
  3. /**
  4.   *
  5.   */
  6. function aplicarTemplate($tpl_file, $vars = array(), $include_globals = true)
  7. {
  8.   extract($vars);
  9.   if ($include_globals) extract($GLOBALS, EXTR_SKIP);
  10.   ob_start();
  11.   require($tpl_file);
  12.   $applied_template = ob_get_contents();
  13.   return $applied_template;
  14. }
  15.  
  16. ?>

el primer parametro es tu template, el segundo tus variables y el tercero por si quieres utilizar variables globales.

No es lo ideal, pero es simple.

Lo utilizas $miTemplate = aplicarTemplate('template.php', $miArray);
Y luego lo sacas con un echo $miTemplate;

La marcación en el template deberá ser del tipo <?php $variable; ?> o si lo prefieres <?=@$variable; ?>

Si tienes un array anidado, con foreach($array as $item){ echo $item; }

Recuerda que para no ensuciar el template, puedes usar esta sintaxis:

Código PHP:
Ver original
  1. <div id="nombre">
  2.   <p><?=@$variable1; ?>
  3.   <?if(@$variable2) : ?>
  4.        <?foreach($variable2 as $item) : ?>
  5.              <p><?=@$item;?></p>
  6.        <?endforeach; ?>
  7.   <?endif; ?>
  8. </div>

Saludos