Menu dinámico PHP

Iniciado por Gogeto, 21 Julio 2011, 04:42 AM

0 Miembros y 1 Visitante están viendo este tema.

Gogeto

Hola.
Estaba creando una web dinámica con php y me di cuenta de que necesitaba que el menú variase según en que módulo de la página nos encontrásemos, mostrando las subcategorías del módulo en el que nos encontramos, y no de otros. La variable $module es la que, en otras páginas, ha sido definida y tratada correctamente para contener solo los valores que nos interesan.

Como no se me ocurría ningún método mejor utilice un simple if para ejecutar o no ciertos echo; el código que utilice esta a continuacion.
Se os ocurre un método mejor de hacerlo o una forma de mejorar éste? Gracias.
<?php
if (!defined('nI')){
	
die(
'No se permite vizualizaci&oacute;n directa');
}
echo 
"<div class=\"leftmenu\">
	
<p>Inicio</p>
	
<p>Peliculas</p>"
;
if ((
$module=="peliculas") or ($module=="pelicula"))
	

	
echo 
"
	
<div class=\"innerleftmenu\">
	
	
<p>Lista alfabetica</p>
	
	
<p>Mejores películas</p>
	
	
<p>Las películas más vistas</p>
	
	
<p>Ultimas peliculas estrenadas</p>
	
	
<p>Ultimas peliculas añadidas</p>
	
</div>
	
<div class=\"Clear-innerleftmenu\"></div>"
;
echo 
"
	
<p>Series</p>"
;
if ((
$module=="series") or ($module=="serie"))
	

	
echo 
"
	
<div class=\"innerleftmenu\">
	
	
<p>Lista alfabetica</p>
	
	
<p>Mejores series</p>
	
	
<p>Las series más vistas</p>
	
	
<p>Ultimas series estrenadas</p>
	
	
<p>Ultimas series añadidas</p>
	
</div>
	
<div class=\"Clear-innerleftmenu\"></div>"
;
echo 
"
	
<p>Documentales</p>"
;
if ((
$module=="documentales") or ($module=="documental"))
	

	
echo 
"
	
<div class=\"innerleftmenu\">
	
	
<p>Lista alfabetica</p>
	
	
<p>Mejores documentales</p>
	
	
<p>Los documentales más vistos</p>
	
	
<p>Ultimos documentales estrenados</p>
	
	
<p>Ultimos documentales añadidos</p>
	
</div>
	
<div class=\"Clear-innerleftmenu\"></div>"
;
echo 
"
	
<p>Juegos</p>"
;
if ((
$module=="juegoss") or ($module=="juego"))
	

	
echo 
"
	
<div class=\"innerleftmenu\">
	
	
<p>Lista alfabetica</p>
	
	
<p>Mejores juegos</p>
	
	
<p>Los juegos más jugados</p>
	
	
<p>Ultimos juegos estrenados</p>
	
	
<p>Ultimos juegos añadidos</p>
	
</div>
	
<div class=\"Clear-innerleftmenu\"></div>"
;
echo 
"
	
<p>Musica</p>"
;
if ((
$module=="musica") or ($module=="artista"))
	

	
echo 
"
	
<div class=\"innerleftmenu\">
	
	
<p>Lista alfabetica</p>
	
	
<p>Mejores músicos</p>
	
	
<p>Los albums más escuchados</p>
	
	
<p>Ultimos albums estrenados</p>
	
	
<p>Ultimos albums añadidos</p>
	
</div>
	
<div class=\"Clear-innerleftmenu\"></div>"
;
echo 
"
	
<p>Programas</p>"
;
if ((
$module=="programas") or ($module=="programa"))
	

	
echo 
"
	
<div class=\"innerleftmenu\">
	
	
<p>Lista alfabetica</p>
	
	
<p>Mejores programas</p>
	
	
<p>Los programas más utilizados</p>
	
	
<p>Ultimos programas estrenados</p>
	
	
<p>Ultimos programas añadidos</p>
	
</div>
	
<div class=\"Clear-innerleftmenu\"></div>"
;
echo 
"</div>
<div class=\"Clear-leftmenu\"></div>"
;
?>

cpichi.cu

No sé si es lo que quieres, pero creo que la mejor solución sería con

switch case

para que no tengas que comprobar siempre todas las opciones

saludos
"La teoría es cuando se sabe todo y nada funciona.
La práctica es cuando todo funciona y nadie sabe por qué.
En este caso hemos combinado la teoría y la práctica: nada funciona... y nadie sabe por qué." (Albert Einstein)

Gogeto

El problema es que hay líneas de código entre medio que deben ser ejecutadas si o si, y son distintas