Comunidad de diseño web y desarrollo en internet online

Pasar HTML a plantilla base en PHP usando Include

Muchos de nosotros hemos utilizado los Templates de Dreamweaver con la esperanza de facilitarnos, a futuro, la tarea de hacer cambios en partes de nuestras webs. Así, por ejemplo, si necesitamos agregar un botón al menú de un sitio de 40 páginas, hacemos dicha modificación en el template, para no tener que cambiarlo en todas las páginas, lo que nos demandaría un rato muy largo.

Sin embargo, las templates de Dreamweaver pueden no ser siempre la mejor solución ni la más fácil de administrar. Es por eso que resulta mejor maquetar nuestras plantillas en un solo archivo y luego dividirlo en partes: encabezado, menu, sidebar, footer, etc., como hace Wordpress. Esto nos permite un mayor control sobre los elementos que componen nuestras páginas.

Vamos a ello:

Supongamos que creamos un archivo index.html, que contiene lo siguiente:

Código :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   <title>Titulo de la pagina</title>
</head>


<body>
<!--Menú-->
<ul>
<li>Inicio</li>
<li>Quiénes somos</li>
<li>Contacto</li>
</ul>

<!--Div con el encabezado-->
<div id="encabezado">
<!--Aquí va una imagen o un logo o un swf o todo a la vez-->
</div>

<!--Div con el contenido-->
<div id="wrapper">
<h1>Aquí va el título de la página</h1>
<p>Aquí va algún texto y más abajo irían imágenes</p>
</div>

<!--Sidebar-->
<div id="sidebar">
<p>Aquí van algunos links o publicidad</p>
</div>

<!--Footer-->
<div id="footer">
<p>Aquí pueden ir los datos de contacto</p>
</div>

</body>
</html>


Bien, esto es lo básico, si quisiéramos crear una segunda página, digamos quienes_somos.html, simplemente grabaríamos como y, conservando la misma estructura, cambiaríamos los contenidos, principalmente el del div principal (wrapper).

Pero, si el día de mañana tuviéramos que cambiar los datos del sidebar, el pie, el menú, etc., deberíamos cambiarlos en cada página. Para facilitar las cosas -y de paso no usar plantillas Dreamweaver- vamos a dividir las partes de la página en varios archivos y luego llamarlos con la sentencia include() de PHP.

Lo primero será renombrar nuestro index.html a index.php. Luego, podríamos copiar, por ejemplo, el menú del sitio a un archivo llamado menu.php, que contendría sólo lo siguiente:

Código :

<!--Menú-->
<ul>
<li>Inicio</li>
<li>Quiénes somos</li>
<li>Contacto</li>
</ul>


Luego, volviendo a nuestro index.php, borraríamos el código que acabamos de copiar y, en su lugar, pondríamos:

Código :

<?php include("menu.php"); ?>


Con esto tan simple, aparece el menú como si lo tuviéramos en la misma página.

Luego, haríamos lo mismo con todas las otras partes, creando los archivos respectivos a cada sección del diseño que se repite en cada página:
  • encabezado.php
  • sidebar.php
  • footer.php


Y reemplazaríamos el código en index.php, quienes_somos.php, contacto.php, etc., por su respectiva llamada

Código :

<?php include("encabezado.php"); ?>
<?php include("menu.php"); ?>
<?php include("footer.php"); ?>


Así, cuando necesitáramos agregar un botón en el menú, una publicidad en el sidebar o cambiar los datos de contacto en el footer, simplemente acudiríamos a los archivos específicos, con lo cual estos cambios se mostrarían en todas las páginas.

Si alguien no desea utilizar la extensión php en los archivos de sus sitio web, puede simplemente renombrarlos mediante un archivo .htaccess.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate