Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Welington Kleber

Problemas com menu inteligente (essa é complicada)

Recommended Posts

Boa tarde a todos,

 

gente estou com um problema aqui, estamos implantando aqui na empresa um menu inteligente, dependendo da rotina que o usuário tiver, irá carregar um menu com apenas as rotinas cadastradas.

 

Vamos lá, vê se alguém pode me ajudar ...

 

Código:

 

$nusuario=$_SESSION['usuarioLogin']; 
$enc=$_SESSION['usuarioSenha']; 
$sql =("SELECT LX_ROTINAS FROM LX WHERE UPPER (USUARIO)= upper('$nusuario')AND UPPER (SENHA)= UPPER('$enc')");
echo $sql;

$query = odbc_exec($conn, $sql) or die('Erro no sql');  

$resultado = odbc_fetch_row($query);
$result=odbc_result($query ,"LX_ROTINAS");
echo $result;
$rotinas=$result;

$sql1 ="SELECT GM_IDMENU,GM_MENU,GM_ENDERECO,GM_ROTINA,GM_SUBMENU1 FROM GLOB_MENUWEB WHERE  '$rotinas' CONTAINING GM_ROTINA  ORDER BY GM_IDMENU";

$rs = odbc_exec($conn, $sql1) or die('Erro no sql');  

$menuItens = array();

$i = 0;

while($row = odbc_fetch_row($rs))
{    
    $i = $i + 1;
	$menuItens[odbc_result($rs, "GM_IDMENU")][$i] = array('link' => odbc_result($rs, "GM_ENDERECO"),'name' => odbc_result($rs, "GM_MENU"),'submenu1' => odbc_result($rs, "GM_SUBMENU1"));
    
}
$count= count($menuItens);

echo "<div id='cssmenu'>";
echo "<ul>";
function imprimeMenuInfinito( array $menuTotal , $idPai = 0 )
{
	//este foreach imprime apenas o modulo
	foreach( $menuTotal[$idPai] as $idMenu => $menuItem)
	{
		echo '<li><a href="#"><span>',$menuItem['name'],'</span></a>';
		//força saída quando preencher
    	break;
    }
	echo "<ul>"; 
		//preencha os submenu1
    foreach( $menuTotal[$idPai] as $idMenu => $menuItem)
	{	
	   echo '<li><a href="',$menuItem['link'],'"><span>',$menuItem['submenu1'],'</span></a></li>';

	}	
echo "</ul>";	
echo "</li>";
}

for($i=0; $i < $count; $i++)
{
imprimeMenuInfinito($menuItens,$i);
}

?>

 

Fiz um array, e uma função pra carregar de acordo com a minha tabela, teoricamente era pra funcionar assim.

 

Agora que cadastramos a rotina com as tabelas, encontramos o seguinte problema.

 

Pra carregar o menu todo, funciona legal ... porém, se o usuário tiver acesso apenas a rotina de compras?

 

Exemplo:

 

Temos o módulo de COMPRAS.

 

Compras - Rel 1

Compras - Rel 2

Compras - Rel 3

 

O ID_MENU, do módulos de compras é 7.

 

Agora o problema:

 

 

 

  • Notice: Undefined offset: 0 inC:\xampp\htdocs\OrganonWebCorreto\menuteste_1.phpon line 51

    Warning: Invalid argument supplied for foreach() inC:\xampp\htdocs\OrganonWebCorreto\menuteste_1.phpon line 51

    Notice: Undefined offset: 1 inC:\xampp\htdocs\OrganonWebCorreto\menuteste_1.phpon line 51

 

Como o usuário tem acesso apenas a compras, " array " = 7.

 

O array tenta acessar as outras posições, e como o usuário não tem acesso, dá erro.

Não consegue suprir o array.

 

Deu pra entender?Alguém tem alguma solução?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.