index.php
Código PHP:
   include_once("template.php");//incluyo el template
set_file("index","index.html");//seteo la pagina
$menu=include_once("menu.php");
set_var("menu",$menu);
pparse("todo");//muestro el contenido 
    Código HTML:
 <!-- BEGIN todo --> //En este punto inicio el bloque <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin título</title> <link href="css/css.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="contenedor"> <div id="header"> Nombre o Logo Empresa<br /> {menu}//lo que esta encerrado entre llaves es lo que seto anteriormente con set_var </div> </div> </body> </html> <!-- END todo -->//Aca lo cierro
Código HTML:
 MENUUUUU Nombre o Logo Empresa 1
les dejo el codigo de template.php
Código PHP:
   <?php
// * FUNCION:                                                                                                 *
// *         ESTE MODULO PERMITE ACCEDER A LAS PLANTILLAS POR MEDIO DEL PHP                                   *
// *                                                                                                          *
// *  en el script se debe hacer include("template.php3");                                                    *
// *  tenemos 4 funciones basicas;                                                                            *
// *                                                                                                          *
// * --set_file($nombrepagina,$path);                                                                         *
// *                                                                                                          *
// *   con esto busca el archivo /templates/."$path"                                                          *
// *   y ahora en mas lo referenciamos con el nombre $nombrepagina                                            *
// *                                                                                                          *
// * --set_var($var,$value)                                                                                   *
// *                                                                                                          *
// *   esta funcion sirve para cambiar  lo que pusimos en la plantilla entre llaves {var} por valor           *
// *   pero esta variable debe estar dentro de un bloque en la plantilla o sea dentro de                      *
// *   <!-- BEGIN nombrebloque -->                                                                            *
// *   <!-- END nombrebloque -->                                                                              *
// *                                                                                                          *
// * --parse(nombrebloque,nombrebloque,true o false)                                                          *
// *                                                                                                          *
// *    anexas a la plantilla un bloque pero con los datos pasados en set_var()                               *
// *   se puede ejecutar muchas veces para hacer un listado por ejemplo.                                      *
// *                                                                                                          *
// * --pparse($nombredepagina)                                                                                *
// *                                                                                                          *
// *   basicamente termina de imprimir el template pero con todos los bloques y variables cambiados.          *
// *                                                                                                          *
// *  Este software esta bajo la licencia GPL.                                                                *
// *  *
// ************************************************************************************************************
//
// Fecha=04-05-2001
if(defined("TEMPLATE")) return;
define("TEMPLATE", 1);
   $classname = "Template";
   $root = "./templates/";
   $blocks = array();
   $vars = array();
   $unknowns = "keep";  // "remove" | "comment" | "keep"
   $halt_on_error = "yes";   // "yes" | "report" | "no"
    function set_file($name, $filename) {
          extract_blocks($name, load_file($filename));
       }
    function set_var($var, $value) {
       global $vars;
         $vars["/\{$var}/"] = $value;
    }
    /*
     * string parse(string $target, [string $block], [bool $append]);
     * Procesa el bloque especificado por $block y almacena el resultado en
     * $target. Si $block no se ha especificado se asume igual a $target.
     * $append especifica si se debe a�dir o sobreescribir la variable
     * $target(sobreescribir por defecto).
     */
    function parse($target, $block = "", $append = true) {
       global $blocks,$vars,$unknowns,$regs;
        if($block == "") {
            $block = $target;
        }
        
        if(isset($blocks["/\{$block}/"])) {
            if($append) {
                $vars["/\{$target}/"] .= @preg_replace(array_keys($vars), array_values($vars), $blocks["/\{$block}/"]);
                if($vars["/\{$target}/"]{0}=="\\"){
                   $vars["/\{$target}/"]=str_replace("\\","",$vars["/\{$target}/"]);
                }
            } else {
                $vars["/\{$target}/"] = @preg_replace(array_keys($vars), array_values($vars), $blocks["/\{$block}/"]);
                if($vars["/\{$target}/"]{0}=="\\"){
                    $vars["/\{$target}/"]=str_replace("\\","",$vars["/\{$target}/"]);
                }
            }
            switch($unknowns) {
                case "keep":
                break;
                case "comment":
                $vars["/\{$target}/"] = preg_replace('/{(.+)}/', "<!-- UNDEF: \\1 -->", $vars["/\{$target}/"]);
                break;
                case "remove":
                default:
                $vars["/\{$target}/"] = preg_replace('/{\w+}/', "", $vars["/\{$target}/"]);
                break;
            }
        } else {
            halt("parse: No existe ningun bloque llamado \"$block\"." . serialize($blocks));
        }
        return $vars["/\{$target}/"];
    }
    function pparse($target, $block="", $append = false) {
        return print(str_replace("\\","",parse($target, $block, $append)));
    }
    function gparse($target, $block="", $append = false) {
        return (str_replace("\\","",parse($target, $block, $append)));
    }
    function p($block) {
       global $vars;
        return print($vars[$block]);
    }
    function get_vars() {
       global $vars;
        reset($vars);
        while(list($k,$v) = each($vars)) {
            preg_match('/^{(.+)}$/', $k, $regs);
            $vars[$regs[1]] = $v;
        }
        return $vars;
    }
    function get_var($varname) {
       global $vars;
            return $vars["/\{$varname}/"];
    }
    function get($varname) {
       global $vars;
        return $vars["/\{$varname}/"];
    }
    function load_file($filename) {
       global $root;
        if(($fh = fopen("$root/$filename", "r"))) {
            $file_content = fread($fh, filesize("$root/$filename"));
            fclose($fh);
        } else {
            halt("load_file: No se puede abrir $root/$filename.");
        }
        return $file_content;
    }
    function extract_blocks($name, $block) {
       global $blocks,$regs;
        $level = 0;
        $current_block = $name;
        $blocksa = explode("<!-- ", $block);
        if(list(, $block) = @each($blocksa)) {
            $blocks["/\{$current_block}/"] = $block;
            while(list(, $block) = @each($blocksa)) {
                preg_match('/^(BEGIN|END) (\w+) -->(.*)$/s', $block, $regs);
                switch($regs[1]) {
                    case "BEGIN":
                        $blocks["/\{$current_block}/"] .= "\{$regs[2]}";
                    $block_names[$level++] = $current_block;
                    $current_block = $regs[2];
                    $blocks["/\{$current_block}/"] = $regs[3];
                    break;
                    case "END":
                    $current_block = $block_names[--$level];
                    $blocks["/\{$current_block}/"] .= $regs[3];
                    break;
                    default:
                    $blocks["/\{$current_block}/"] .= "<!-- $block";
                    break;
                }
                unset($regs);
            }
        } else {
            $blocks["/\{$current_block}/"] .= $block;
        }
    }
    function halt($msg) {
      global $halt_on_error,$last_error;
        $last_error = $msg;
        if ($halt_on_error != "no")
            haltmsg($msg);
        if ($halt_on_error == "yes")
            die("<b>Halted.</b>\n");
        return false;
    }
    function haltmsg($msg) {
       print("<b>Template Error:</b> $msg<br>\n");
    }
?>    Muchas gracias.
 
 

 
 

