动态顶级菜单:如果它是空的,请避免dropmenu

时间:2015-03-16 10:35:34

标签: php drop-down-menu menu

我想构建一个动态菜单,如果它是空的,应避免使用dropmenu。

我的问题是我必须检查链接菜单是否在我的数据库中:如果是,则显示链接,OTHERWISE不打印。

如果下拉列表没有链接,请避免打印。 (如果错误,我可以改变这种机制)

这是我的错误的屏幕截图:

enter image description here

我写了这段代码:

$menu=
        array(
            array(
                'modulo' => ZERO_CLIENTE,
                'name' => 'Clienti',
                'divider' => true,
                array(
                    'modulo' => 'user',
                    'controller' => 'anagrafica',
                    'azione' => 'editCliente',
                    'name' => 'Nuovo',
                    'params' => '',
                ),
                array(
                    'modulo' => 'user',
                    'controller' => 'anagrafica',
                    'azione' => 'showCliente',
                    'name' => 'Organizza',
                    'params' => ''
                ),
                'Agenti' => 
                array(
                    array(
                        'modulo' => 'user',
                        'controller' => 'anagrafica',
                        'azione' => 'showCliente',
                        'name' => 'OrganizzaX',
                        'params' => 'dixxx2222'
                    ),

                    array(
                        'modulo' => 'user',
                        'controller' => 'anagrafica',
                        'azione' => 'showCliente',
                        'name' => 'Organizza',
                        'params' => 'dixxx2222'
                    ),

                ),

            ),

            array(   
                'modulo' => ZERO_MARKETING,
                'name' => 'Marketing',
                'divider' => true,

                'Campagna' => 
                array(
                    array(
                        'modulo' => 'user',
                        'controller' => 'campagna',
                        'azione' => 'editCampagna',
                        'name' => 'Nuova Campagna',
                        'params' => ''
                    ),
                    array(
                        'modulo' => 'user',
                        'controller' => 'campagna',
                        'azione' => 'showCampagna',
                        'name' => 'Organizza Campagna',
                        'params' => ''
                    ),
                    array(
                        'modulo' => 'user',
                        'controller' => 'campagna',
                        'azione' => 'spazioBanner',
                        'name' => 'Posizionamento Banner', 
                        'params' => ''
                    ),
                    array(
                        'modulo' => 'user',
                        'controller' => 'campagna',
                        'azione' => 'editSpazio',
                        'name' => 'Organizza Banner',
                        'params' => ''
                    ),

                ),
                'Opportunità' => 
                array(
                    array(
                        'modulo' => 'user',
                        'controller' => 'opportunita',
                        'azione' => 'showLavorazione',
                        'name' => 'Lavora',
                        'params' => 'dixxx2222'
                    ),
                    array(
                        'modulo' => 'user',
                        'controller' => 'opportunita',
                        'azione' => 'showOpportunita',
                        'name' => 'Organizza',
                        'params' => 'dixxx2222'
                    )
                )

            )
        );

foreach($menu as $modulo){
    if(!$session->user['modulo']['*'] && !isset($session->user['modulo'][$modulo['modulo']])) continue;

    $show_li1 = $show_li2 = false;
    $li1 = $li2 = "";

    echo "<li class=\"has-dropdown main-dropdown\"><a href=\"#\">{$modulo['name']}</a>
            <ul class=\"dropdown\">";

        foreach($modulo as $k => $link){ 

            if($link == "name" || $link == "divider") continue;
            if(is_array($link) && is_numeric($k)){
                if($session->user['permesso'][$link['modulo']][$link['controller']][$link['azione']] != 'D')              
                    echo "<li><a href=\"{$this->baseUrl()}/{$link['modulo']}/{$link['controller']}/{$link['azione']}/?{$link['params']}\">{$session->user['permesso'][$link['modulo']][$link['controller']][$link['azione']]}|{$link['name']}</a></li>";
            }
            else{
                if(is_array($link)){
                    $li1 .= "<li class=\"has-dropdown\"><a>1DROP-{$k}</a>
                                <ul class=\"dropdown sub-dropdown\">";

                    foreach($link as $j => $sublink){

                        if(is_array($sublink) && is_numeric($j)){
                            if($session->user['permesso'][$sublink['modulo']][$sublink['controller']][$sublink['azione']] != 'D'){    
                                $li1 .= "<li><a href=\"{$this->baseUrl()}/{$sublink['modulo']}/{$sublink['controller']}/{$sublink['azione']}/?{$sublink['params']}\">SUB-{$sublink['name']}</a></li>";
                                $show_li1 = true;
                            }
                        }
                        else{
                            if(is_array($sublink)){
                                $li2 .= "<li class=\"has-dropdown\"><a>2DROP-{$j}</a>
                                           <ul class=\"dropdown sub-dropdown\">";

                                foreach($sublink as $l => $submenu){
                                    if(is_array($sublink) && is_numeric($l)){
                                        if($session->user['permesso'][$sublink['modulo']][$sublink['controller']][$sublink['azione']] != 'D'){
                                            $li2 .= "<li><a href=\"{$this->baseUrl()}/{$submenu['modulo']}/{$submenu['controller']}/{$submenu['azione']}/?{$submenu['params']}\">SUBSUB-{$submenu['name']}</a></li>";
                                            $show_li2 = true;
                                        }
                                    }

                                }

                                $li2.=  "</ul>".
                                    "</li>";

                            }

                        }  

                    }


                    $li1.=  "</ul>".
                         "</li>";

                    if($show_li1){ echo $li1; } 
                }

            }//end if sublink    



        }//end foreach modulo

            echo "</ul>";
        echo "</li>"; //die();

    if($modulo['divider']) echo "<li class=\"divider\"></li>";

}

1 个答案:

答案 0 :(得分:0)