Comunidad de diseño web y desarrollo en internet online

Crear menú HTML a partir de un .txt y Php

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)


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]


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 :P

¿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.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate