aberto = 0; $saida = ""; $linha_nova = $linhaTemplate; $linha_nova_subtitulo = $categoriaTemplate; $super_usuario = ""; $itens_menu = array(); $autorizado_menu = array(); @session_start(); $id_usuario = $_SESSION['id_pessoa']; $opcoes_menu = $_SESSION['menu_opt']; $dba = new clsBanco(); $dba->Consulta( "SELECT ref_cod_menu_submenu FROM menu_funcionario WHERE ref_ref_cod_pessoa_fj={$id_usuario}" ); while ($dba->ProximoRegistro()) { list ($aut) = $dba->Tupla(); $autorizado_menu[] = $aut; if($aut ==0) { $super_usuario = true; } } $strAutorizado = implode(", ", $autorizado_menu); if (@$_SESSION['convidado']) { $strAutorizado="999999"; } session_write_close(); $db = new clsBanco(); if ($strAutorizado == "0" || $super_usuario) { if($_GET['suspenso'] ==1 || $_SESSION['suspenso']== 1 || $_SESSION['tipo_menu'] == 1 ) { $sql =" SELECT pai.nm_menu, nome_menu.nm_menu as nm_menu_pai, pai.title AS title_pai, sub.nm_submenu, sub.arquivo, sub.title, pai.cod_menu_menu, case when pai.ref_cod_menu_pai is null then 0 else 1 end as ref_menu_pai FROM menu_menu as pai left outer join menu_menu as filho on (filho.ref_cod_menu_pai = pai.cod_menu_menu AND pai.ref_cod_menu_pai = null) ,menu_submenu as sub ,menu_menu as nome_menu WHERE nome_menu.cod_menu_menu = coalesce (pai.ref_cod_menu_pai,pai.cod_menu_menu) and sub.cod_sistema = '2' AND pai.cod_menu_menu = sub.ref_cod_menu_menu AND sub.cod_menu_submenu not in (select ref_cod_menu_submenu FROM pmicontrolesis.menu WHERE suprime_menu =1 AND ref_cod_menu_submenu IS NOT null) ORDER BY upper(nome_menu.nm_menu),ref_menu_pai,upper(pai.nm_menu),sub.nm_submenu "; //nm_menu_pai } else { $sql =" SELECT DISTINCT pai.nm_menu, nome_menu.nm_menu as nm_menu_pai, pai.title AS title_pai, sub.nm_submenu, sub.arquivo, sub.title, pai.cod_menu_menu, case when pai.ref_cod_menu_pai is null then 0 else 1 end as ref_menu_pai, upper(nome_menu.nm_menu),upper(pai.nm_menu),sub.nm_submenu FROM menu_menu as pai left outer join menu_menu as filho on (filho.ref_cod_menu_pai = pai.cod_menu_menu) ,menu_submenu as sub ,menu_menu as nome_menu WHERE nome_menu.cod_menu_menu = coalesce (pai.ref_cod_menu_pai,pai.cod_menu_menu) and sub.cod_sistema = '2' AND pai.cod_menu_menu = sub.ref_cod_menu_menu ORDER BY upper(nome_menu.nm_menu),ref_menu_pai,upper(pai.nm_menu),sub.nm_submenu "; } } else { $query_lista = ""; if( $strAutorizado ) { $query_lista = "sub.cod_menu_submenu in ({$strAutorizado}) OR "; } $suspenso = ""; if($_GET['suspenso'] ==1 || $_SESSION['suspenso']== 1 || $_SESSION['tipo_menu'] == 1 ) { $suspenso = " AND sub.cod_menu_submenu not in (select ref_cod_menu_submenu FROM pmicontrolesis.menu WHERE suprime_menu =1 AND ref_cod_menu_submenu IS NOT null)"; } if ( $strAutorizado=="999999" ) { $sql =" SELECT pai.nm_menu, nome_menu.nm_menu as nm_menu_pai, pai.title AS title_pai, sub.nm_submenu, sub.arquivo, sub.title, pai.cod_menu_menu, case when pai.ref_cod_menu_pai is null then 0 else 1 end as ref_menu_pai FROM menu_menu as pai left outer join menu_menu as filho on (filho.ref_cod_menu_pai = pai.cod_menu_menu) ,menu_submenu as sub ,menu_menu as nome_menu WHERE nome_menu.cod_menu_menu = coalesce (pai.ref_cod_menu_pai,pai.cod_menu_menu) and sub.cod_sistema = '2' AND pai.cod_menu_menu = sub.ref_cod_menu_menu AND ($query_lista sub.cod_menu_submenu in (SELECT sub2.cod_menu_submenu FROM menu_submenu sub2 WHERE sub2.nivel='1') ) ORDER BY upper(nome_menu.nm_menu),ref_menu_pai,upper(pai.nm_menu),sub.nm_submenu "; // } else { $sql =" SELECT DISTINCT pai.nm_menu, nome_menu.nm_menu as nm_menu_pai, pai.title AS title_pai, sub.nm_submenu, sub.arquivo, sub.title, pai.cod_menu_menu, case when pai.ref_cod_menu_pai is null then 0 else 1 end as ref_menu_pai, upper(nome_menu.nm_menu), upper(pai.nm_menu) FROM menu_menu as pai left outer join menu_menu as filho on (filho.ref_cod_menu_pai = pai.cod_menu_menu) ,menu_submenu as sub ,menu_menu as nome_menu WHERE nome_menu.cod_menu_menu = coalesce (pai.ref_cod_menu_pai,pai.cod_menu_menu) and sub.cod_sistema = '2' AND pai.cod_menu_menu = sub.ref_cod_menu_menu AND ($query_lista sub.cod_menu_submenu in (SELECT sub2.cod_menu_submenu FROM menu_submenu sub2 WHERE sub2.nivel='2') ) $suspenso ORDER BY upper(nome_menu.nm_menu),ref_menu_pai,upper(pai.nm_menu),sub.nm_submenu "; } } // $db->Consulta( $sql ); while ($db->ProximoRegistro()) { list ($nome,$nomepai, $titlepai, $nomesub, $arquivo, $titlesub, $cod_submenu,$ref_menu_pai) = $db->Tupla(); $itens_menu[] = array($nome,$nomepai, $titlepai, $nomesub, $arquivo, $titlesub, $cod_submenu,$ref_menu_pai); } $saida = ""; $menuPaiAtual = ""; foreach ($itens_menu as $item) { if ( $item[0] != $menuPaiAtual ) { $estilo_linha = "nvp_cor_sim"; $this->aberto = 0; $menuPaiId = $item[6]; if(isset($_COOKIE["menu_{$menuPaiId}"])) { if( $_COOKIE["menu_{$menuPaiId}"] == 'V' ) { $this->aberto = 1; } } // define a acao para ser contraria ao status atual if( $this->aberto ) { $imagem = "up2"; $acao = 0; $simbolo = "-"; $title_acao = "Fechar a categoria"; } else { $imagem = "down2"; $acao = 1; $simbolo = "+"; $title_acao = "Abrir a categoria"; } $saida = str_replace("", $submenus, $saida); $submenus = ""; // Adiciona um menu pai $aux_temp = $linha_nova_subtitulo; $aux_temp = str_replace("", $item[0], $aux_temp); $aux_temp = str_replace("", $item[3], $aux_temp); $aux_temp = str_replace("", $item[6], $aux_temp); $aux_temp = str_replace("", $acao, $aux_temp); $aux_temp = str_replace("", $simbolo, $aux_temp); $aux_temp = str_replace("", $title_acao, $aux_temp); $aux_temp = str_replace("", $item[0], $aux_temp); $aux_temp = str_replace("", $imagem, $aux_temp); $aux_temp = str_replace("", $menuPaiId, $aux_temp); $style = $this->aberto == 1 ? "" : "style='display:none;'"; $aux_temp = str_replace("", $style , $aux_temp); $saida .= $aux_temp; // Define que este é o menu pai atual $menuPaiAtual = $item[0]; } // so mosta se estiver aberto //menus filhos //if( $this->aberto != 0 ) { $aux_temp = $linha_nova; if (substr($item[4], 0, 5) == "http:") { $target = "_blank"; } else { $target = "_top"; } $estilo_linha = $estilo_linha=="nvp_cor_sim" ? "nvp_cor_nao" : "nvp_cor_sim"; $aux_temp = str_replace("", $estilo_linha, $aux_temp); $aux_temp = str_replace("", $item[3], $aux_temp); $aux_temp = str_replace("", $item[4], $aux_temp); $aux_temp = str_replace("", $item[3], $aux_temp); $aux_temp = str_replace("", $target, $aux_temp); $submenus .= $aux_temp; } } $saida = str_replace("", $submenus, $saida); return $saida; } } ?>