A la hora de crear una web existen aquellos programadores que les gusta tener el diseño y la logica separados (separar php de html), para eso recurren a sistemas de plantillas como smarty que pueden resultar engorrosos porque hay que aprender la sintaxis de estos.
Dando vueltas por la web encontre esta pequeña clase que hace basicamente lo mismo que smarty y otros sistemas de plantillas pero es mucho mas facil de manejar:
clase_plantilla.php
Problemosla como puedes apreciar al inicio del codigo hay tres valores que podemos modificar la ruta de las plantillas, la extencion y los delimitadores.
Vamos a crear un archivo holaMundo.tpl que contendra el sig. codigo (debe ir dentro de una carpeta plantillas)
ahora fuera de la carpeta plantillas junto con el archivo clase_plantilla creamos el siguiente archivo:
holaMundo.php
Bueno, eso es todo para probarlo ejecutar holaMundo.php
Dando vueltas por la web encontre esta pequeña clase que hace basicamente lo mismo que smarty y otros sistemas de plantillas pero es mucho mas facil de manejar:
clase_plantilla.php
<?php
//esta es la clase
class TemplateClass{
//Declaraciones
private $_dir = 'plantillas/'; //carpeta de los archivos .tpl (los templates)
private $_file_ext = '.tpl'; //formato de los templates, (default = .tpl)
private $_vars = array(); //variables a transformar
private $_delimiters = array('{', '}'); //limitadores para saber donde tiene que buscar (ejemplo = {ejemplo})
public function Assign($name, $value){
if(!array_key_exists($name, $this->_vars))
$this->_vars[$name] = $value;
}
public function GetAssign($name){
return $this->_vars{$name};
}
public function Template($file){
if( $output = @file_get_contents($this->_dir.$file.$this->_file_ext)){
foreach($this->_vars as $name => $value){
$output = str_replace($this->_delimiters[0].$name.$this->_delimiters[1], $value, $output);
}
return $output;
}
else
die("La plantilla no existe.");
}
}
?> Problemosla como puedes apreciar al inicio del codigo hay tres valores que podemos modificar la ruta de las plantillas, la extencion y los delimitadores.
Vamos a crear un archivo holaMundo.tpl que contendra el sig. codigo (debe ir dentro de una carpeta plantillas)
<html>
<head>
<title>Mi pagina</title>
</head>
<body>
{variable}
</body>
</html>ahora fuera de la carpeta plantillas junto con el archivo clase_plantilla creamos el siguiente archivo:
holaMundo.php
<?php
//incluimos la clase
include('clase_plantilla.php');
//iniciamos la clase
$tpl=new TemplateClass();
//reemplazamos {variable} por Hola Mundo
$tpl->assign('variable','Hola Mundo');
//indicamos la plantilla sin extencion solo el nombre
echo $tpl->Template('holaMundo');
?>Bueno, eso es todo para probarlo ejecutar holaMundo.php