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)
[nota:a8f2b4f87a]Nótese en este ejemplo a continuación que las tabulaciones se convierten en cuatro espacios, así que solo servirá para visualizar nada mas... [/url] [/nota:a8f2b4f87a]
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
No hay comentarios:
Publicar un comentario