コード例 #1
0
ファイル: build.menu.php プロジェクト: Oscarmal/o3m.fw
/** 
* 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 = '&nbsp;&nbsp';
                    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;
    }
}
コード例 #2
0
ファイル: build.menu.php プロジェクト: Oscarmal/o3m.director
/** 
* 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 = '&nbsp;&nbsp';
                    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;
    }
}