Ver Mensaje Individual
  #10 (permalink)  
Antiguo 23/02/2005, 12:18
Avatar de lisandro Arg
lisandro Arg
 
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Pone esta index.php
Código PHP:
<?php 
// Primero incluimos el archivo de configuración 

include('conf.php'); 


/** Verificamos que se haya escogido un modulo, sino 
* tomamos el valor por defecto de la configuración. 
*/ 

if (!empty($_GET['mod'])) 
    
$modulo $_GET['mod']; 
else 
    
$modulo MODULO_DEFECTO

/** También debemos verificar que el valor que nos 
* pasaron, corresponde a un modulo que existe, caso 
* contrario, cargamos el modulo por defecto 
*/ 

if (empty($conf[$modulo])) 
        
$modulo MODULO_DEFECTO

/** Ahora determinamos que archivo de Layout tendrá 
* este módulo, si no tiene ninguno asignado, utilizamos 
* el que viene por defecto 
*/ 

if (empty($conf[$modulo]['layout'])) 
        
$conf[$modulo]['layout'] = LAYOUT_DEFECTO

/** Aqui podemos colocar todos los comandos necesarios para 
* realizar las tareas que se deben repetir en cada recarga 
* del index.php - En el ejemplo, conexión a la base de datos. 

* include('clases/class.DB.php'); 
* $db = new DB(); 
* $db->conectar(); 
*/ 

/** Finalmente, cargamos el archivo de Layout que a su vez, se 
* encargará de incluir al módulo propiamente dicho. si el archivo 
* no existiera, cargamos directamente el módulo. También es un 
* buen lugar para incluir Headers y Footers comunes. 
*/ 

$path_layout LAYOUT_PATH.'/'.$conf[$modulo]['layout']; 
$path_modulo MODULO_PATH.'/'.$conf[$modulo]['archivo']; 

if (
file_exists($path_layout)) 
    include( 
$path_layout ); 
else 
    if (
file_exists$path_modulo )) 
        include( 
$path_modulo ); 
    else 
        die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>'); 
   
?>
Este conf.php

Código PHP:
<?php 
/* 
* Archivo de configuración para nuestra aplicación modularizada. 
* Definimos valores por defecto y datos para cada uno de nuestros módulos. 
*/ 
define('MODULO_DEFECTO''home'); 
define('LAYOUT_DEFECTO''layout_simple.php'); 

define('MODULO_PATH'realpath('./modulos/')); 
define('LAYOUT_PATH'realpath('./layouts/')); 

$conf['home'] = array( 
        
'archivo' => 'home.php'
        
'titulo' => 'Titulo por defecto',
        
'layout' => LAYOUT_DEFECTO );  

$conf['articulo'] = array(
        
'titulo' => 'Titulo del articulo',
        
'archivo' => 'articulo.php' ); 

$conf['imp_art'] = array( 
        
'archivo' => $conf['home']['archivo'], 
        
'layout' => 'imprimir.php' ); 


?>
en la carpeta layouts layout_simple.php
Código HTML:
<html> 
<head> 
    <title><? echo $conf[$modulo]['titulo'] ?></title> 
</head> 
<body bgcolor="#9999cc"> 
<basefont color="white" face="Verdana" /> 

<?php include('includes/header.html'); ?> 

<table width="100%" border="0" cellspacing="1" cellpadding="1"> 
    <tr> 
        <td width="140" bgcolor="#5b69a6"> </td> 
        <td> 
<? 
    if (file_exists( $path_modulo )) include( $path_modulo ); 
    else die('Error al cargar el módulo <b>'.$modulo.'</b>. No 
    existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>'); 
?> 
        </td> 
    </tr> 
</table> 
Dentro del la carpeta modulo home.php que es el que se carga por defecto
Código HTML:
<h3>Bienvenido al Home</h3> 
<p>Este es un ejemplo de un sitio modular, como vemos, las páginas que 
componen los módulos, pueden ser tanto archivos.php como archivos.html, 
todo dependiendo de si necesitamos interactividad o no con el Servidor. 
La hora actual es : <b><?=date("H:m:s");?></b></p> 
<p>Para ver el contenido de un artículo, por favor, seguir el 
<a href="?mod=articulo">siguiente link</a>.</p> 
despues solo te queda pones artuculo.php y imprimir.php pero no creo que tengas problemas con eso.

Última edición por lisandro Arg; 23/02/2005 a las 12:21