Hola a todos!
Aquí vengo con un aporte que espero que les sirva. Sé que hay muchas formas distintas de generar menús hoy en día, ya sea con o sin javascript, usando o no frameworks pero espero que lo que les traigo a continuación le sea de mucha utilidad a más de alguno.
Un día me vi en la necesidad de tener que generar varios menús para distintos tipos de usuario, cada usuario con una categoría diferente, entonces decidí que lo haría a partir de un archivo de texto tabulado según el nivel del menú.
La clase que genera el menú funciona en PHP y necesita de un parámetro para recibir el nombre del archivo .txt del cual se generara el menú. También agregué la posibilidad que se "cachee" para no generarlo cada vez, a continuación les presento el formato del archivo de texto de cual se genera...
- El archivo acepta comentarios que comiencen con (#)
- Cada nivel debe ir en una línea diferente
- Según la cantidad de tabulaciones al comienzo de la línea así será la profundidad
- El nombre de la opción, el link, y el target debe separarse por una tabulación (\t)
Código :
# Según el nivel de tabulación será el nivel del menú (para tabular se puede usar tanto tabulaciones como espacios simples) # Los que no tienen tabulación serán los títulos del menú # una tabulación separa el texto que mostrará en el menú y su respectivo link Menu submenu sub-submenu 1 sub-submenu 2 sub-submenu 3 sub-submenu 4 sub-submenu 5 sub-submenu 6 sub-submenu 7 sub-submenu 8 A AAA B BBB C CCC ASDF a A s S d D f F Links Externos (Se abren en una nueva pestaña) DuckDuckGO http://www.ddg.gg/ _blank Facebook http://www.facebook.com/ Twitter http://www.twitter.com/ Otros javascript javascript:alert("Hola"); return false; Salir javascript:alert("Adios");
Luego en el index solo necesitaría llamarlo de esta forma (incluyendo el require del php y el link al manejador en javascript y los estilos en css)
Código :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Menu Generado</title> <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=utf-8"/> <script type="text/javascript" src="hMenu.js"></script> <style type="text/css"> body{font-family: sans-serif; font-size:12px; margin: 0px; padding 0px; background: #fff} </style> <link rel="stylesheet" type="text/css" href="hMenu.css" /> </head> <body onload="hMenu.init('menu1')"> <?php require_once("hMenu.php"); $hMenuHandler = new hMenu("menu1.txt", true); echo $hMenuHandler->getMenu("menu1"); ?> </body> </html>
Aquí explico los parámetros:
Código :
$hMenuHandler = new hMenu("menu1.txt", true);
- El primero es el nombre del archivo de texto
- el segundo es si desean cachearlo o no
- pueden enviar un parámetro adicional para indicar el directorio donde se creará el menú para cachearlo...
(Si quieren cachearlo recuerden que deben tener permisos de escritura en el directorio donde está el archivo)
Espero haberles sido útiles

¿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.
Por alejandro el 21 de Diciembre de 2011
Código :
Por forgencio el 08 de Enero de 2012
Por Esperanza el 07 de Noviembre de 2012
Por Brensa el 25 de Agosto de 2013
Por Malosito el 30 de Agosto de 2014