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.