Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/12/2009, 07:06
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Menu recursivo con esta tabla

con una función recursiva, algo así

Código PHP:

//RECURSIVO:
    
function getPrivilegios(connection $c,recordset $priv$level,$id_usuario,$id_empresa){
        
$event='';
        
$class='privilegio';
        
//verificando existencia de nodos:
        
$recnode $c->pg_elemento_menu->doQuery($c, new criteria(sqlEQUAL,$c->pg_elemento_menu->id_padre,$priv->id_elemento_menu))->orderBy($c->pg_elemento_menu->def_order)->orderBy($c->pg_elemento_menu->nombre)->doSelect();
        if(
$recnode){
            if(
$recnode->getNumRows()!=0){
                if(
$level==20 || $level==40){
                    
$display="display:none;";
                    
                    
$sl=($level==20) ? '_p':'_p2';
                    
$class="menuprivilegio_close";
                }else{
                    
$class="menuprivilegio";
                }
                
$html.='<div style="'.$display.'" id="container'.$priv->id_elemento_menu.'">';
                
$event='onclick="switch_priv(this,'.$priv->id_elemento_menu.');"';
                
//$class="menuprivilegio";
                
foreach($recnode as $e){//RECURSION:
                    
$html.=getPrivilegios($c,$e,$level+20,$id_usuario,$id_empresa);
                }
                
$html.='</div>';
            }
        }
        
//leer los privilegiso del usuario por la empresa:
        
$recu=$c->pg_menu_usuario->doSelect($c,new criteria(sqlAND,array(
            new 
criteria(sqlEQUAL,$c->pg_menu_usuario->id_usuario,$id_usuario),
            new 
criteria(sqlEQUAL,$c->pg_menu_usuario->id_empresa,"'".$id_empresa."'"),            
            new 
criteria(sqlEQUAL,$c->pg_menu_usuario->id_elemento_menu,$priv->id_elemento_menu)
        )));
//...
return $html;