/** * Descripción: Crea las opciones del MENU principal del sistema * @author: Oscar Maldonado - O3M * Creación: 2013-02-16 * Modificación: 2015-10-14; **/ function buildMenu($visible = false, $invisible = false) { global $cfg, $Path, $usuario; #Extraccion de datos de la DB-tabla de menú $menus = select_menus(false, false, $visible, $invisible); if ($menus) { $menus = !is_array($menus[0]) ? array($menus) : $menus; #Deteccion de total de elementos por grupo foreach ($menus as $elm) { $grupos[] = $elm[id_grupo]; $subgrupos[] = $elm[id_superior]; } // $menu_array[grupos] = array_count_values($grupos); $grupos = array_count_values($grupos); $subgrupos = array_count_values($subgrupos); $subgrupos = array_diff_key($subgrupos, $grupos); foreach ($subgrupos as $subgrupo => $sub) { $grupos[$subgrupo] = $sub; } $menu_array[grupos] = $grupos; #Construcción de menu foreach ($menus as $menu_element) { #Link $e = explode('/', $menu_element[link]); $enlace = $cfg[encrypt_onoff] ? encrypt(strtoupper($e[0]), 1) . '/' . encrypt(strtoupper($e[1]), 1) : strtolower($menu_element[link]); $link = $Path['url'] . $enlace; #Texto $texto = utf8_encode($menu_element[texto]); #Imagen $imagen = !empty($menu_element[ico]) ? '<img src="' . $Path[img] . $menu_element[ico] . '" alt="' . utf8_encode($menu_element[texto]) . '" class="icono_dos"/>' : ''; #onClick $onclick = !empty($menu_element[link]) ? 'onclick="location.href=\'' . $link . '\';"' : ''; #Construccion de arreglo switch ($menu_element[nivel]) { case 1: $subs =& $menu_array; break; case 2: $subs =& $menu_array[$menu_element[id_grupo]][subs]; break; case 3: $subs =& $menu_array[$menu_element[id_grupo]][subs][$menu_element[id_superior]][subs]; $margen = '  '; break; } #Elemento final // $html = '<a href="#" class="menu_opt" id="'.$menu_element[menu].'" '.$onclick.'>'.$margen.$imagen.$texto.$flecha.'</a>'.$input; $html = $margen . $imagen . $texto; $subs[$menu_element[id_menu]] = array(id_menu => $menu_element[id_menu], id_grupo => $menu_element[id_grupo], menu => $menu_element[menu], texto => $menu_element[texto], nivel => $menu_element[nivel], html => $html, onclick => $onclick, subs => array()); unset($subs, $margen); } $menu_html = build_ul_menu_01($menu_array); return $menu_html; } else { return false; } }
/** * Descripción: Crea las opciones del MENU principal del sistema * @author: Oscar Maldonado - O3M * Creación: 2013-02-16 * Modificación: 2015-10-14; **/ function buildMenu($visible = false, $invisible = false) { global $cfg, $Path, $usuario, $dic; #Extraccion de datos de la DB-tabla de menú $menus = select_menus(false, false, $visible, $invisible); if ($menus) { $menus = !is_array($menus[0]) ? array($menus) : $menus; #Deteccion de total de elementos por grupo foreach ($menus as $elm) { $grupos[] = $elm[id_grupo]; $subgrupos[] = $elm[id_superior]; } $grupos = array_count_values($grupos); $subgrupos = array_count_values($subgrupos); $subgrupos = array_diff_key($subgrupos, $grupos); foreach ($subgrupos as $subgrupo => $sub) { $grupos[$subgrupo] = $sub; } $menu_array[grupos] = $grupos; #Construcción de menu foreach ($menus as $menu_element) { #Link $e = explode('/', $menu_element[link]); $enlace = $cfg[encrypt_onoff] ? encrypt(strtoupper($e[0]), 1) . '/' . encrypt(strtoupper($e[1]), 1) : strtolower($menu_element[link]); $link = $Path['url'] . $enlace; #Texto $texto = $dic[menutop][$menu_element[texto]]; #Construccion de arreglo switch ($menu_element[nivel]) { case 0: $subs =& $menu_array; break; case 1: $subs =& $menu_array; break; case 2: $subs =& $menu_array[$menu_element[id_grupo]][subs]; break; case 3: $subs =& $menu_array[$menu_element[id_grupo]][subs][$menu_element[id_superior]][subs]; $margen = '  '; break; } #Elemento final $subs[$menu_element[id_menu]] = array(id_menu => $menu_element[id_menu], id_grupo => $menu_element[id_grupo], menu => $menu_element[menu], texto => $texto, nivel => $menu_element[nivel], ico => $menu_element[ico], link => $link, subs => array()); unset($subs, $margen); } $menu_html = build_ul_menu($menu_array); // dump_var($menu_html); return $menu_html; } else { return false; } }