Crear una plantilla con includes en PHP
Cómo crear una plantilla en PHP y hacer un sitio homogéneo utilizando sencillos includes.
Una plantilla va a ser un portada genérica para nuestra web, que solo contendrá los menús y elementos indispensables que además mostraremos en todas las páginas por igual.
¿Para qué queremos esto?
1.Código más limpio,cualquier modificación se puede hacer sobre este mismo archivo afectando de manera inmediata al resto de las páginas.
2. Web más uniforme, de modo que el usuario no sé perderá entre diferentes secciones llenas de menús que puedan hacer engorrosa la navegabilidad.
Comencemos
Nuestro código va a ser sumamente simple, para empezar crearemos una tabla que como marco donde deberemos poner nuestros logotipos, menus, publicidad,.. y lo más importante, el contenido.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Plantilla en PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><div align="right">Logotipo y Titulo</div></td>
</tr>
<tr>
<td width="20%"><p>Menu principal</p>
<ul>
<li><a href="">Sección 1 </a></li>
<li><a href="">Sección 2 </a></li>
<li><a href="">Sección 3 </a></li>
</ul></td>
<td colspan="2" valign="top">
Aquí irá el contenido
</td>
</tr>
<tr>
<td colspan="3">Pie de página </td>
</tr>
</table>
</body>
</html>
Vamos a utilizar el PHP para poder introducir contenido dentro de esta plantilla.
Para ello vamos a utilizar la función include de PHP. Esta nos permite introducir una página dentro de otra con tan solo indicarle la ruta del archivo, así utilizaremos una variables (que pasaremos por URL) para indicar a que sección queremos acceder.
Por ejemplo, si utilizamos una variable llamada $sec podriamos acceder a una sección utilizando el link "?sec=seccion1", de modo que a continuación en nuestro código y para evitar fallos innecesarios comprobaremos que el archivo 1.html/ 1.htm/ 1.php/... existe y en tal caso lo incluiremos.
Veamos a contianuación el código:
<?php
if(empty($sec))
{
include("presentacion.html");
}
else
{
if(file_exists($sec.".php"))
include($sec.".php");
elseif(file_exists($sec.".html"))
include($sec.".html");
else
echo 'Perdón pero la página solicitada no existe';
}
?>
if(empty($sec))
{
include("presentacion.html");
}
else
{
if(file_exists($sec.".php"))
include($sec.".php");
elseif(file_exists($sec.".html"))
include($sec.".html");
else
echo 'Perdón pero la página solicitada no existe';
}
?>
En este caso hemos comprobado solo si existe el archivo "1.html" y "1.php".
Pero ¡cuidado con este código!, ya que en el caso de que tengamos ambos archivos en nuestro servidor siempre se mostrará el ".php" ya que es el primero que aparece.
De este modo conseguimos finalmente un fichero con la siguiente forma:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Plantilla en PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><div align="right">Logotipo y Titulo</div></td>
</tr>
<tr>
<td width="20%"><p>Menu principal</p>
<ul>
<li><a href="?sec=1">Sección 1 </a></li>
<li><a href="?sec=2">Sección 2 </a></li>
<li><a href="?sec=3">Sección 3 </a></li>
</ul></td>
<td colspan="2" valign="top">
<?php
if(empty($sec))
{
include("presentacion.html");
}
else
{
if(file_exists($sec.".php"))
include($sec.".php");
elseif(file_exists($sec.".html"))
include($sec.".html");
else
echo 'Perdón pero la página solicitada no existe';
}
?>
</td>
</tr>
<tr>
<td colspan="3">Pie de página </td>
</tr>
</table>
</body>
</html>
<html>
<head>
<title>Plantilla en PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><div align="right">Logotipo y Titulo</div></td>
</tr>
<tr>
<td width="20%"><p>Menu principal</p>
<ul>
<li><a href="?sec=1">Sección 1 </a></li>
<li><a href="?sec=2">Sección 2 </a></li>
<li><a href="?sec=3">Sección 3 </a></li>
</ul></td>
<td colspan="2" valign="top">
<?php
if(empty($sec))
{
include("presentacion.html");
}
else
{
if(file_exists($sec.".php"))
include($sec.".php");
elseif(file_exists($sec.".html"))
include($sec.".html");
else
echo 'Perdón pero la página solicitada no existe';
}
?>
</td>
</tr>
<tr>
<td colspan="3">Pie de página </td>
</tr>
</table>
</body>
</html>
En él existen 3 archivos, el index.php que será nuestra plantilla, 1.php que será una de nuestras secciones, 2.html que será otra de nuestras secciones y el link a la sección tres la hemos dejado que apunte a un archivo que aun no hemos creado para comprobar que nuestra funcion file_exists funciona correctamente.
Las cabeceras y los tags van dentro de nuestro index.php, si incluis un archivo con cabeceras dentro de otro creareis un mal código html, que posiblemente no tenga mucho efecto en el visitante pero sí será un obstaculo para encontrar posibles errores o simplemente para leer vuestro propio código.
Tomado de: https://desarrolloweb.com/articulos/2472.php
No hay comentarios:
Publicar un comentario