Regresar a la página ComoCrearTuWeb.com
Resultados 1 al 3 de 3

Tema: Sistema de plantillas PHP

  1. #1
    Recien Llegado! Habitante
    Fecha de Ingreso
    11 ene, 14
    Mensajes
    29
    Poder de Reputación
    12

    Sistema de plantillas PHP

    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

    Código 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)

    Código HTML:
    <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

    Código 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

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    27
    Hola!

    Gracias por el aporte.

    La verdad es que encuentro a smarty un problema más que una solución (en lugar de 2 líneas de PHP, escribo 4 de smarty), pero esto es mucho más simple, así que, nuevamente, gracias :).

  3. #3
    Recien Llegado! Habitante
    Fecha de Ingreso
    11 ene, 14
    Mensajes
    29
    Poder de Reputación
    12
    Cita Iniciado por skaparate Ver Mensaje
    Hola!

    Gracias por el aporte.

    La verdad es que encuentro a smarty un problema más que una solución (en lugar de 2 líneas de PHP, escribo 4 de smarty), pero esto es mucho más simple, así que, nuevamente, gracias :).
    La verdad no es nada aqui me han ayudado mucho para perfeccionarme en php y solo queria devolver la mano

Temas Similares

  1. ¿Como puedo añadir un sistema de mensajes a mi sistema de usuarios?
    Por FGS en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 2
    Último Mensaje: 02/05/2012, 19:50
  2. sistema de pts con top
    Por splaing en el foro Foro General
    Respuestas: 0
    Último Mensaje: 23/10/2008, 22:00

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •