Cargando



Creación y uso de plantillas o templates en PHP

En este pequeño tutorial vamos a tratar sobre como trabajar plantillas (templates) con php, vamos a decir unas pocas pero grandes ventajas de trabajar de esta manera:
Separamos el XHTML o HTML del código php, es decir, nuestra plantilla no tendrá codigo php, asi que a la hora de diseñar solo nos preocuparemos por eso, de diseñar únicamente.
Mejor organización de los archivos.
La plantilla no contendrá código php, cualquier código php que contenga este simplemente será ignorado y reemplazado.


feb 26 2014 16:23
Avanzado
feb 26 2014 21:35
En este pequeño tutorial vamos a tratar sobre como trabajar plantillas (templates) con php, vamos a decir unas pocas pero grandes ventajas de trabajar de esta manera:
Separamos el XHTML o HTML del código php, es decir, nuestra plantilla no tendrá codigo php, asi que a la hora de diseñar solo nos preocuparemos por eso, de diseñar únicamente.
Mejor organización de los archivos.
La plantilla no contendrá código php, cualquier código php que contenga este simplemente será ignorado y reemplazado.

Son dos pero muy buenas, es decir, el diseñador que se encargue de diseñar y el programador que se encargue de programar.
Ahora vamos a ver como lograr esto, simplemente identificaremos la zona que php sera reemplazado con un identificador encerrado por llaves "{}", para verlo más claro, empecemos con hacer nuestra plantilla, como dije anteriormente solo será código XHTML o HTML


<html>
<head>
<title>Esto es una prueba de uso de plantillas</title>
</head>
<body>
<p>Mi {variable} con plantilla y php </p>
</body>
</html>

Como vemos simplemente código HTML, php se encargará de parsear variable que es lo que esta encerrado entre llaves, para esto utilizaremos la clase Plantilla hecha por Dano, basándose en el sistema de plantillas de phpBB, solo necesitamos pasarle el nombre de nuestra plantilla, las lista de variables que vayamos a parsear e invocar el metodo(o función como lo entiendas mejor) que se encargará de hacer el parseo, este es código de dicha clase.

<?
class plantilla{
function plantilla($template_file){
$this->tpl_file = 'plantillas/' . $template_file . '.tpl';
}

function asigna_variables($vars){
$this->vars= (empty($this->vars)) ? $vars : $this->vars . $vars;
}

function muestra(){
if (!($this->fd = @fopen($this->tpl_file, 'r'))) {
sostenedor_error('error al abrir la plantilla ' . $this->tpl_file);
} else{
$this->template_file = fread($this->fd, filesize($this->tpl_file));
fclose($this->fd);
$this->mihtml = $this->template_file;
$this->mihtml = str_replace ("'", "\'", $this->mihtml);
$this->mihtml = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->mihtml);
reset ($this->vars);
while (list($key, $val) = each($this->vars)) {
$$key = $val;
}
eval("\$this->mihtml = '$this->mihtml';");
reset ($this->vars);
while (list($key, $val) = each($this->vars)) {
unset($$key);
}
$this->mihtml=str_replace ("\'", "'", $this->mihtml);
echo $this->mihtml;
}
}
}
?>


plantilla.png



La función asigna_variables, que se encargara de recibir los nombres de las variables que vayamos a parsear, en caso de este ejemplo sera una variable php, que cambiara {variable} por $variable.

El siguiente método será muestra es nuestro parseador como tal, es decir, este identificará las variables obtenidas en el anterior metodo que hayan en la plantilla y lo sustituira por el valor que nosotros queramos.

Veamos con un simple ejemplo como podemos usarla, antes de esto vamos a explicar como deben organizados nuestros archivos, primero creamos una carpeta llamada plantillas que contendrá todos los archivos de las plantillas diseñadas por nosotros, al mismo nivel de la carpeta pondremos el archivo (clase_plantilla) con el script de la clase plantilla y los scripts php que la vayan a usar.

Ahora dicho esto veamos como utilizar la clase, creamos nuestro script php llamado noticias.php.


<?
include("clase_plantilla.php");
//al Pasar como parametro noticia, asumimos que en la carpeta plantillas existe un archivo de nombre noticias.tpl
$Contenido=new Plantilla("noticias");
$Contenido->asigna_variables(array(
"variable" => "noticia ",
"variable" => "fecha "
));

//$ContenidoString contiene nuestra plantilla, ya con las variables asignadas a reemplazar
$ContenidoString = $Contenido->muestra();
echo $ContenidoString;
?>

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X