Foros del Web » Programando para Internet » PHP »

Separando codigo del diseño

Estas en el tema de Separando codigo del diseño en el foro de PHP en Foros del Web. hola, yo hace poco aprendi a separar el codigo html del codigo php usando, clases, esta clase: Código PHP: <? class  plantilla { function  plantilla ...
  #1 (permalink)  
Antiguo 11/01/2007, 11:19
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Separando codigo del diseño

hola, yo hace poco aprendi a separar el codigo html del codigo php usando, clases, esta clase:

Código PHP:
<?
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->fdfilesize($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;
    
///
            
        
}
    }
}

function 
sostenedor_error($error){
    
$miplantilla=new plantilla("error");
    
$miplantilla->asigna_variables(array(
        
'ERROR' => $error)
    );
    return 
$miplantilla->muestra();
}
?>
Y tambien esta:

Código PHP:
<?php
class Template{
    var 
$tpl_file$htmlTemplate;
    var 
$htmlText;
    var 
$fileReaded;
    var 
$PATH 'Templates/';
    var 
$EXT '.tpl';
    function 
Template(){
    }
    function 
setTemplate$templateFile ){
        
$this->htmlText="";    
        
$this->tpl_file =  $this->PATH $templateFile $this->EXT ;
        
$this->fileReaded $this->fileData = @fopen($this->tpl_file'r');
        if (!
$this->fileReaded) {
                return 
false;
        } else{
            
$this->htmlTemplate fread($this->fileDatafilesize($this->tpl_file));
            
$this->htmlTemplate str_replace ("'""\'"$this->htmlTemplate);
            
fclose($this->fileData);
        }
        return 
true;
    }
    function 
setVars($vars){
        if ( 
$this->fileReaded ) {
            
$this->vars $vars;
            
$this->htmlText preg_replace('#\{([a-z0-9\-_]*?)\}#is'"' . $\\1 . '"$this->htmlTemplate);
            
reset ($this->vars);
            while (list(
$key$val) = each($this->vars)) {
                    $
$key $val;
            }
            eval(
"\$this->htmlText = '$this->htmlText';");
            
reset ($this->vars);
            while (list(
$key$val) = each($this->vars)) {
                    unset($
$key);
            }
            
$this->htmlText str_replace ("\'""'"$this->htmlText);
            return 
true;
        }else{
            
//Error, you must set a template file
            
return false;
        }
        
    }
    function 
show(){
        if ( 
$this->fileReaded ) {
            return (
$this->htmlText!="")?$this->htmlText:$this->htmlTemplate;
        }else{
            
//Error, you must set a template file
            
return "[ERROR]";
        }
    }
}

?>

y en la pagina index.php
pongo esto:

Código PHP:
<?
include("clase_plantilla.php");
    
$Contenido=new Plantilla("holaMundo");//al Pasar como parametro holaMundo, asumimos que en la carpeta plantillas existe un archivo de nombre holaMundo.tpl
    
$Contenido->asigna_variables(array(    "variable" => "Hola Mundo2"));


    
$ContenidoString $Contenido->muestra();//$ContenidoString contiene nuestra plantilla, ya con las variables asignadas

    
echo $ContenidoString."<br>";
?>
Hasta alli va todo bien, pero como le hago cuando quiero abrir una pagina que contiene base de datos, donde pongo la conexion a la bd?(me imagino que en el index.php), como puedo enviarles a una pagina parametros para que otra las reciba y haga una consulta SQL.

Simplemente podrian darme un pequeño ejemplo

Salu2.

Última edición por StrikeFreedom; 11/01/2007 a las 15:04
  #2 (permalink)  
Antiguo 11/01/2007, 15:05
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Separando codigo del diseño

podrian ayudarme?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:52.