Un saludo. A través de modulos: simplemente modificas el layout principal y te ahorras poner los includes... ¿Qué tal si deseas cambiar el nombre a los archivos include? toca cambiar todas las rutas de los include.
PASOS: El archivo index de entrada principal de la web, "index.php" sera algo como esto: Código PHP:
<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
include('conf.php');
if(!empty($_GET['mod']))
$modulo = $_GET['mod'];
else
$modulo = MODULO_DEFECTO;
if(empty($conf[$modulo]))
$modulo = MODULO_DEFECTO;
if(empty($conf[$modulo]['layout']))
$conf[$modulo]['layout'] = LAYOUT_DEFECTO;
$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 modulo: <b>'.$modulo.'.</b> No existe el archivo: <b>'.$conf[$modulo]['archivo'].'</b>');
?>
El archivo de configuracion, "conf.php", algo como esto: Código PHP:
<?php
define('MODULO_DEFECTO','home');
define('LAYOUT_DEFECTO','layout_simple.php');
define('MODULO_PATH', realpath('./modules/'));
define('LAYOUT_PATH', realpath('./layouts/'));
$conf['home'] = array('archivo'=>'index.html','layout'=>LAYOUT_DEFECTO);
$conf['otroModulo'] = array('archivo'=>'blabla.html','layout'=>LAYOUT_DEFECTO);
?>
El layout principal, "layout_simple.php" que estara guardado en el directorio layouts, algo como esto: Código HTML:
<!DOCTYPE HTML>
<html lang="es-CO">
<head>
<meta charset="UTF-8">
<title>tutorias.co</title>
<style rel="stylesheet" href="aquiVinculasCSS.css">
</head>
<body>
<header><img src="banner.jpg" alt="" /><h1>buuu!!</h1></header>
<nav>
<ul>
<li><a href="?mod=home">Inicio</a></li>
<li><a href="?mod=otroModulo">bla bla</a></li>
</ul>
</nav>
<?php
if(file_exists($path_modulo))
include($path_modulo);
else die('Error al cargar el modulo: <b>'.$modulo.'.</b> No existe el archivo: <b>'.$conf[$modulo]['archivo'].'</b>');
?>
<footer>Internet gratis para todo el mundo!!!</footer>
</body>
</html>
El archivo index.html de bienvenida, señalado en el archivo de configuración como modulo home, algo como esto: Código HTML:
<b>¡hola mundo!</b>
Y listo!!
Cuantas páginas tenga la web, tantos modulos debe crear y vincularlos en el archivo "conf.php"
Por último, la estructura del sitio quedaria como se muestra en la imagen adjunta.
directorio raiz >
index.php
conf.php
modules > index.html
layouts > layout_simple.php