我想构建一个动态菜单,如果它是空的,应避免使用dropmenu。
我的问题是我必须检查链接菜单是否在我的数据库中:如果是,则显示链接,OTHERWISE不打印。
如果下拉列表没有链接,请避免打印。 (如果错误,我可以改变这种机制)
这是我的错误的屏幕截图:
我写了这段代码:
$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>";
}
答案 0 :(得分:0)