Академический Документы
Профессиональный Документы
Культура Документы
Inserta los contenidos de cada pgina Genera un men desplegable Le da un ttulo a cada pgina Genera enlaces amigables a las pginas Muestra la ruta de migas de pan
Modo de empleo
Supongamos que vamos a hacer una web con la siguiente estructura:
Inicio Dibujos animados o Los Simpson o Los Picapiedra o Dragones y mazmorras Tebeos o Conan el brbaro o Las aventuras de Tintn o El hombre araa Contctanos
Pasos a seguir:
1. Crea el archivo menu.php con la estructura de la web:
<?php $menu = array( 'start' => "Inicio", 'dibus' => "Dibujos animados", 'tbo' => "Tebeos", 'contacto' => "Contctanos", ); $submenu = array(); $submenu['dibus'] = array( 'simpsons' => "Los Simpsons", 'picapiedra'=> "Los Picapiedra", 'dragmaz' => "Dragones y mazmorras", ); $submenu['tbo'] = array( 'conan' => "Conan el brbaro", 'tintin' => "Las aventuras de Tintn", 'spiderman' => "El hombre araa", ); ?>
La clave start del men indica la pgina de inicio de la web 2. Crea la subcarpeta paginas y dentro haz los siguientes archivos siguiendo las claves propuestas en el men anterior:
o o o o o o o o o o
start.php dibus.php dibus_simpsons.php dibus_picapiedra.php dibus_dragmaz.php tbo.php tbo_conan.php tbo_tintin.php tbo_spiderman.php contacto.php
En cada archivo escribe el cdigo HTML que ira dentro del <body>; sin poner ni la etiqueta <html> ni <head> 3. Descarga el archivo Plantilla6.php y ponlo en la raz de tu web 4. Crea la pgina index.php en la raz de tu web. Esta ser la plantilla de la web y contendr las etiquetas <html> y <head> que no pusimos antes.
<?php require_once("menu.php"); require_once('Plantilla6.php'); $plantilla = new Plantilla(); $plantilla->setMenu($menu, $submenu); $plantilla->setFriendly(false); $plantilla->setWebTitle('Ilustraciones internacionales'); $plantilla->setDirContents('paginas/'); ?><!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title><?php echo $plantilla->getPageTitle(); ?></title> <link href="estilos.css" rel="stylesheet" type="text/css" /> </head> <body class="<?php echo $plantilla->getClassBody(); ?>"> <div id="cabecera"> <h1>Ilustraciones internacionales</h1> </div> <div id="menu"> <?php echo $plantilla->getMenu(); ?> </div> <div id="contenido"> <?php $plantilla->writePageContent(); ?> </div> </body> </html>
Con este paso ya funciona la web, pero lo vamos a mejorar un poco ms 5. Crea el archivo estilos.css donde vamos a poner los estilos mnimos para que el men sea desplegable
#menu > ul > li { /* Men principal horizontal */ display:inline-block; } #menu ul ul { /* Oculta los submens */ display:none; position:absolute; background-color:white; border:1px solid black; } #menu > ul > li:hover ul { /* Mostrar submen */ display:block; }
Puedes mejorar ms el aspecto del men con estilos.css 6. Por ltimo vamos a hacer que las URL sean amigables convirtiendo las direcciones de tipo index.php?item=tbo&subitem=spiderman a este formato tbo_spiderman.html. a. Crea el archivo .htaccess el cual configurar el servidor Apache
Options +Indexes Options +FollowSymlinks RewriteEngine on RewriteBase / RewriteRule ^([^/]+)_([^/]+).html$ index.php?item=$1&subitem=$2 [NC,L] RewriteRule ^([^/]+).html$ index.php?item=$1 [NC,L]
Modifica RewriteBase para que apunte a la carpeta donde est tu web si no estuviese en la raz b. En el archivo index.php da la orden de activar las URL amigables
$plantilla->setFriendly(true);
Historial de versiones
Versin 1 Men de dos niveles mediante listas anidadas a mano Versin 2 El CSS mnimo para que sea un men desplegable: estils2.css Versin 3 Generacin automtica del men con PHP Versin 4 Mejora del diseo CSS: estils4.css Versin 5 Direcciones amigables para que parezcan ficheros HTML Versin 6 Cdigo refactorizado dentro de la clase: Plantilla6.php
El fichero .htaccess
Options +Indexes Options +FollowSymlinks RewriteEngine on RewriteBase /ruta_web RewriteRule ^([^/]+)_([^/]+).html$ index.php?item=$1&subitem=$2 [NC,L] RewriteRule ^([^/]+).html$ index.php?item=$1 [NC,L]
Para activar el mdulo REWRITE de Apache, en el caso de que estuviese desactivado, hay que introducir por lnea comando la siguiente orden: a2enmod
rewrite
contenidos/bus.php
contenidos/metro_blau.php
contenidos/tren_ave.php
http://dominio/index.php?item=tren&subitem=ave http://dominio/tren_ave.html
Incluye el archivo:
require_once('Plantilla6.php');
Crea la plantilla:
$plantilla = new Plantilla();
$plantilla->getPageTitle()
Obtiene la clase del <body> para configurar cada pgina con CSS:
$plantilla->getClassBody()
Compartir
en Facebook
en Twitter
Anterior
Siguiente
Indice
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
2 comentarios:
1 Alexis M. (no registrado) dice hace 8 meses:
Muy interesante su plantilla. Sin embargo me he encontrado que los archivos no poseen bloqueo de acceso directo. Es decir que si por ejemplo quiero acceder desde la web al archivo "tbo_spiderman.php" lo puedo hacer colocando toda la ruta hacia el archivo y se ve el contenido del mismo ("Entre sus superpoderes se encuentra una gran agilidad..."). Es posible solucionar lo mencionado o hay que hacerlo por parte del sercidor? Muchas gracias de antemano. Alexis M.
Ummm, Hola Alexis, Interesante cuestin... En PHP puedes saber con __FILE__ la ruta del actual fichero PHP Y con $_SERVER['SCRIPT_FILENAME'] la ruta del actual script. Puede ser diferente del actual fichero PHP porque el fichero puede estar incluido dentro de otro fichero PHP. Con la funcin basename() se puede extraer el nombre del fichero eliminando la informacin de las carpetas. Si coloco la siguiente lnea de cdigo al principio del fichero "tbo_spiderman.php" <?php if (basename(__FILE__) == basename($_SERVER['SCRIPT_FILENAME'])) die(); ?> se ver bien cuando se haga a travs de la plantilla pero se ver en blanco si se intenta mostrar directamente. Saludos