Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2010, 06:31
kadas99
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 9 meses
Puntos: 4
includes en template.php

Buenos dias, estoy un poco desorientado, tengo un archivo template.php el cual uso para poder separar codigo php de html y poder trabajarlos por separado, mi problema es a la hora de hacer un include o require, ya que este se solapa con mi pagina principal, les muestro un ejemplo:

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 
index.html
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&iacute;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
y me da como resultado:

Código HTML:
MENUUUUU
Nombre o Logo Empresa 
1
ya probe de mil maneras distintas, a veces me muestra tan solo lo que esta en el menu.php y otras no muestra nada.

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($nameload_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($fhfilesize("$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");
    }
?>
espero que alguien sepa como se soluciona!

Muchas gracias.