Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/10/2003, 05:17
Avatar de ferny
ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 18 años, 3 meses
Puntos: 55
Gracias, aunque lo que busco es mucho más sencillo. Viendo los ejemplos conseguí hacer algo que funcionara, me gustaría que me critiquen el código.
Tenemos un archivo plantilla.php que será el archivo común a todas las páginas, y tiene dos zonas que variarán, {TITULO} y {CONTENIDO}
Después la clase está definida en el archivo class.php Tiene 3 funciones: la primera, para obtener el archivo de la plantilla, la segunda para introducir los datos variables y la tercera para mostrar la página.
Finalmente, pagina.php es el archivo que usa la plantilla.

--- plantilla.php ---

Código PHP:
<html>
<
head>
<
title>{TITULO}</title>
</
head>

<
body>
{
CONTENIDO}
</
body>
</
html
--- class.php ---

Código PHP:
<?
class Pagina {
    
// Cargamos la plantilla
    
function crear($plantilla){
        
ob_start();
        include(
$plantilla);
        
$this -> salida ob_get_contents();
        
ob_end_clean();
    }
    
// Cambiamos variables
    
function variable($tengo,$quiero){
        
$this -> salida str_replace$tengo $quiero $this -> salida );
    }
    
// Mostramos la página
    
function mostrar(){
        echo 
$this -> salida;
    }
}
?>
--- pagina.php ---

Código PHP:
<?
// Cogemos la clase "pagina"
include('class.php');

// Creamos la pagina, ponemos la plantilla, sustituimos variables
$salida = new Pagina;
$salida -> crear("plantilla.php");
$salida -> variable("{TITULO}","Este es el titulo");
$salida -> variable("{CONTENIDO}","Esto son los contenidos");

// Mostramos la página
$salida -> mostrar();
?>
Me gustaría que critiquen el código, especialmente la primera función de la clase, por si hay una forma más sencilla de obtener la plantilla. Lo hice con las funciones ob_ pero también había pensado en hacer un implode("",file("plantilla.php")); pero no sé cual es más beneficioso para el servidor, pues me interesa ante todo mantener el menor tiempo posible de ejecución del script.
Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.

Última edición por ferny; 04/10/2003 a las 05:22