Menu dinámico con PHP y CSS Drop-down menu framework

Posted by on abr 7, 2009 in Lenguaje PHP | 11 comments

En esta oportunidad quiero presentarles el framework CSS Drop-down menu para crear menus desplegables y como podemos usarlo para generar menus en forma dinámica con PHP.

La ventaja de usar este framework es que nos evita el uso de javascript, flash u otro tipo de tecnología para crear menus. Usando CSS hacemos que nuestro sitio sea más compatible con los estándares web y por lo tanto más accsesible para navegadores y usuarios. Además, aumenta la eficiencia y velocidad del sitio ya que no se sobre carga con librerías javascript.

Otro aspecto a favor es que CSS Drop-down menu esta bajo licencia GPL por lo que podemos usarlo, contribuir y mejorar el proyecto.

Debido a que CSS Drop-down menu se basa en los tags ul y li para crear las diferentes partes del menu, es realmente útil cuando queremos generar el menu dinámicamente, es decir, cuando las opciones se cargan por ejemplo, desde una base de datos y por lo tanto lo único que tenemos que generear es código HTML puro.

Otra ventaja del framework es que nos permite cambiar el layout del menu simplemente incluyendo el archivo CSS correspondiente y cambiando la clase CSS usada en el tag ul principal; de igual forma podemos cambiar la apariencia mediante themes lo que nos provee de gran flexibilidad a la hora de ajustar los menus a nuestras necesidades.

Como punto en contra, no podemos dejar pasar el hecho de que usa un mínimo de javascript para que los menus puedan visualizarse de forma correcta en IE 6 y sus anteriores versiones.

Bueno, presentado el framework, vamos a pasar a ver un ejemplo sencillo y claro sobre como implementar el menú dinámico con PHP.
Lo primero que debemos hacer es descargar el framework CSS y descomprimirlo en nuestra carpeta de trabajo.

<ul id="nav" class="dropdown dropdown-vertical">
 <?php
 
$menu[] = array('Colores' => array('Rojo', 'Verde', 'Azul') );
$menu[] = array('Animales' => array('Perro', 'Gato', 'Conejo') );
 
foreach ($menu as $menu_key => $menu_item){
	foreach($menu_item as $menu_name => $sub_menu){
		echo "<li><a href='#'>".$menu_name."</a>";
		if (isset($sub_menu)){
			echo "<ul>";
			foreach($sub_menu as $items){
				echo "<li><a href='#'>".$items."</a>";
			}
			echo "</ul>";
		}
		echo "</li>";
	}
}
 
?>
</ul>

Para este ejemplo, usamos un array pre cargado con las opciones del menú, pero es claro que en general serán cargadas desde otras fuentes (base de datos, archivos, etc.). La idea básica es iterar el array de acuerdo a la estructura de nuestro menú e ir generando las etiquetas ul y li .

Obviamente, la complejidad del menú depende de los requerimientos de la aplicación o del sitio que estemos desarrollando, por ejemplo se podría agregar información en el array para cada opción del menú, por ejemplo la url, la clase, etc.; sin embargo, este ejemplo abre los caminos para crear todo tipo de menus.

Más información:
http://www.lwis.net/free-css-drop-down-menu/

Ver ejemplo del código aquí

VN:F [1.9.8_1114]
Te gusto este post?
Rating: 6.2/10 (6 votes cast)
Menu dinámico con PHP y CSS Drop-down menu framework, 6.2 out of 10 based on 6 ratings
Comparte el artículo:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • MySpace
  • StumbleUpon
  • Technorati
  • Print
  • email
  • Twitthis

Tambien te puede interesar...


11 Comments

  1. 5-29-2009

    Se ve interesante, deberias poner un enlace para la decarga del framework CSS y un ejemplo del resutao

    Gracias por el código.

  2. 5-31-2009

    Gracias por tu comentario, como verás al final del artículo tienes un link al sitio del framework donde puedes encontrar un botón “Download” y además agregamos un link para que puedas ver un ejemplo del código.

    saludos, Juan.

  3. 7-4-2009

    Necesito hacer un menu dinamico, pero del tipo (+) y (-) como el del explorador de windows. Gracias Ariel.

  4. 7-5-2009

    Hola Ariel, primero que nada te damos gracias por tu comentario ya que a raíz de tu consulta creamos un artículo que explica una de las formas de generar el tipo de menú que tu quieres. Lo puedes leer en el siguiente enlace:

    http://www.tecnopedia.net/php/tree-menus-con-php/

    saludos, Juan.

  5. 9-9-2009

    como hago para cargar el array con datos de una consulta mysql.
    Gracias

  6. 8-15-2011

    hola amigo soy nuevo en esto y necesito ayuda, cree un ABC de departamentos de una empresa y necesito que se borren de un menu y aparescan?? puedes ayudarme

  7. 8-28-2011

    no se si entiendo bien que es lo que precisas… si con el ABM borras o creas nuevos departamentos y si el menu se carga dinamicamente no deberias tener problemas… si puedes explicar mejor tu problema no tengo inconveniente en ayudarte.
    saludos.

  8. 9-15-2011

    Hola muy bueno el ejemplo… quisiera saber como harias sub menu del submenu perro???? y como lo harias con variables haciendo una consulta mysql desde ya muchas gracias….

  9. 9-15-2011

    Hola, como veras los menus se componen de elementos en listas, es decir, UL -> LI y cada submenu es una nueva lista anidada, por lo tanto si quieres generar mas submenues debes anidar tantas listas como necesites.
    ej:

    UL-> LI Menu 1
        -> LI Menu 2
            UL -> LI Submenu 2.1
                   UL->LI Submenu 2.1.1

    Respecto a la 2da parte de tu pregunta, lo que tienes que hacer es cargar apropiadamente los arrays que contienen los menus con el resultado de tu consulta SQL, para que quede mas claro te dejo un bosquejo de codigo a modo de guia:

    //codigo con consulta SQL... mysql_query("SELECT...")...
    while($row=mysql_fetch_array($result)){
        //cargo array de menu con el resultado de la consulta
    }

    saludos.

  10. 11-16-2011

    Hola acabo de ver tu aportacion pero tengo una duda, copie el codigo de ejemplo ke pusiste en un archivo .php sin embargo no veo el menu dinamico, solo el texto plano, tambien ya descarque el framework. mi duda es, como se debe de instalar, o en donde debe de ir la carpeta ke viene en formato zip?. ¿debe tener algun nombre especifico la caperta? gracias, saludos

  11. 11-22-2011

    Hola, bueno primero debes descomprimir el zip, la carpeta puede tener el nombre que tu quieras… lo relevante es importar los archivos CSS que descomprimiste en tu codigo HTML.
    Ejemplo, suponiendo que la carpeta se llame css/dropdown/ :

    <link href="css/dropdown/dropdown.css" media="all" rel="stylesheet" type="text/css" />
    <link href="css/dropdown/themes/default/default.css" media="all" rel="stylesheet" type="text/css" />

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Security Code: