Autor Tema: [Aporte] Sistema de templates  (Leído 1692 veces)

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
[Aporte] Sistema de templates
« en: 28 de Abril de 2010, 23:54:47 pm »
Código: [Seleccionar]
<?php
function template($template_file$array)
{
$template_file file_get_contents("templates/".$template_file.&#39;.html&#39;); //Seleccionamos la ruta del archivo
$template_file preg_replace(&#39;#\{([a-z0-9\-_]*?)\}#Ssie&#39;, &#39;( ( isset($array[\&#39;\1\&#39;]) ) ? $array[\&#39;\1\&#39;] : \&#39;\&#39; );&#39;, $template_file); // Hacemos un preg_replace
print $template_file// Mostramos el resultado final
}
?>


Para mostrar variables se utilizaría el $array de la function. ej:
$VarsHola['tonteria'] = "Soy una tonteria";
template("hola", $VarsHola);

en el archivo (hola.html) meteríamos {} entre esas llaves el valor entre las [], {tonteria} eso mostraría Soy una tontería
« Última modificación: 10 de Septiembre de 2011, 18:59:05 pm por javipilo »

Comunidad PHPeros

[Aporte] Sistema de templates
« en: 28 de Abril de 2010, 23:54:47 pm »

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Aporte] Sistema de templates
« Respuesta #1 en: 29 de Abril de 2010, 00:05:47 am »
Pues.. Ya lo sabia xDD

Si la definimos en otro archivo también puede ser... (Como lo que usa los mc)

Ej:
Código: [Seleccionar]
<?php
define
("_HOLA""Hola como estas?");
?>
Simplemente lo ponemos en otro archivo y hacemos include...
Luego se podría implementar el "_HOLA" En el lugar donde quieres que te muestre "Hola como estas?"

Saludos
Twitter: @JoakoM010



Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #2 en: 29 de Abril de 2010, 00:12:33 am »
pero entonces estamos ya es PHP no html como yo digo que en el html metes {contenido array}

Saludos

Desconectado OmaarV

  • PHPero Avanzado
  • ****
  • Mensajes: 304
  • Karma: 20
  • Sexo: Masculino
  • OmarVega
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #3 en: 29 de Abril de 2010, 01:49:57 am »
Yo tengo este codigo para un sistema de noticias que hice.
Código: [Seleccionar]
$sql2 = @mysql_query("SELECT * FROM `noticias` WHERE id = '".mysql_escape_string($id)."'");

while ($array = @mysql_fetch_array($sql2)){

$bbcodes = array(":)", ":(", ":@", "(s)", "(/s)", "(i)", "(/i)", "(img)", "(/img)");
$bbcodes2 = array("<img src='bbcode/).gif' border='0'>", "<img src='bbcode/(.gif' border='0'>", "<img src='bbcode/@.gif' border='0'>", "<s>", "</s>", "<i>", "</i>", "<img src='", "' border='0'>");

$noticia = str_replace($bbcodes, $bbcodes2, $array['contenido']);

$etiquetas = array("(titulo)", "(autor)", "(fecha)", "(contenido)", "(minicontenido)");
$reemplazos = array($array['titulo'], $array['autor'], $array['fecha'], $noticia, $array['minicontenido']);

$nuevo = str_replace($etiquetas, $reemplazos, $plantilla);


$total = $nuevo;
echo $total;
}
[/code ]

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #4 en: 29 de Abril de 2010, 18:03:44 pm »
no me complicaria para las variables... eval y santas pascuas

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #5 en: 29 de Abril de 2010, 19:47:39 pm »
Yo me refiero por ejemplo cargar la variable en el html fácilmente para los diseñadores, así evitan tocar el PHP que si <?php que echo que si ", cosas así entonces en el html cargamos la variable como he dicho anteriormente pero sin <?php ni ?> ni echo ni nada parecido, este sistema es que utiliza ogame.

Saludos

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #6 en: 05 de Mayo de 2010, 20:52:41 pm »
Yo lo haría con ob_start().. sería muchoo más fácil.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #7 en: 05 de Mayo de 2010, 21:02:13 pm »
Nadie entiende para que sirve por lo que veo, es como smarty...

Mira tu creas un html y lo guardas en la carpeta templates u otra entonces en vez de hacer while, fors y demas lo unico que hacer es poner {variable} lo que hace que el diseñador no estropee los archivos y así no tenga que saber PHP, solo html.

Saludos

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #8 en: 05 de Mayo de 2010, 21:04:43 pm »
Nadie entiende para que sirve por lo que veo, es como smarty...

Mira tu creas un html y lo guardas en la carpeta templates u otra entonces en vez de hacer while, fors y demas lo unico que hacer es poner {variable} lo que hace que el diseñador no estropee los archivos y así no tenga que saber PHP, solo html.

Saludos
El que no entiendes eres tu... creas una función que remplaze los {algo} y luego la inicializas con ob_start()
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #9 en: 05 de Mayo de 2010, 21:06:50 pm »
Venga entonces vamos a php de nuevo ¿no?, por que la función tendrá que remplazar fuera del archivo "tal". Y ob_start(), para que?? no hace falta eso y encima estropea headers.

Saludos

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #10 en: 05 de Mayo de 2010, 21:12:04 pm »
Venga entonces vamos a php de nuevo ¿no?, por que la función tendrá que remplazar fuera del archivo "tal". Y ob_start(), para que?? no hace falta eso y encima estropea headers.

Saludos
¿Desde cuando ob_start estropea headers(haha)?, como digo sería más fácil porque sólo tendríamos que poner todas los preg en una función y luego inicializar la funcion con ob_start.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Aporte] Sistema de templates
« Respuesta #11 en: 06 de Mayo de 2010, 00:54:18 am »
xD me equivoque eso es el flus ese jajaj sorry...

Saludos