Пример #1
0
 /**
  * Cria o menu suspenso dos subsistemas Escola e Biblioteca.
  *
  * @todo Refatorar lógica do primeiro par if/else, duplicação
  * @return bool|string Retorna FALSE em caso de erro
  */
 function makeMenuSuspenso()
 {
     // Usa helper de Url para pegar o path da requisição
     require_once 'CoreExt/View/Helper/UrlHelper.php';
     $uri = explode('/', CoreExt_View_Helper_UrlHelper::url($_SERVER['REQUEST_URI'], array('components' => CoreExt_View_Helper_UrlHelper::URL_PATH)));
     @session_start();
     $idpes = $_SESSION['id_pessoa'];
     @session_write_close();
     $submenu = array();
     $menu_tutor = '';
     if ($this->processoAp) {
         $menu_atual = $this->db()->UnicoCampo("SELECT ref_cod_menu_menu FROM menu_submenu WHERE cod_menu_submenu = '{$this->processoAp}'");
         if ($menu_atual) {
             $this->db()->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$menu_atual}'");
             while ($this->db()->ProximoRegistro()) {
                 $tupla = $this->db()->Tupla();
                 $submenu[] = $tupla['cod_menu_submenu'];
             }
             $where = implode(" OR ref_cod_menu_submenu = ", $submenu);
             $where = "ref_cod_menu_submenu = {$where}";
             $menu_tutor = $this->db()->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE {$where} LIMIT 1 OFFSET 0");
         } else {
             $this->prog_alert .= "O menu pai do processo AP {$this->processoAp} está voltando vazio (cod_menu inexistente?).<br>";
         }
     } elseif ($_SESSION['menu_atual']) {
         $this->db()->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$_SESSION['menu_atual']}'");
         while ($this->db()->ProximoRegistro()) {
             $tupla = $this->db()->Tupla();
             $submenu[] = $tupla['cod_menu_submenu'];
         }
         $where = implode(" OR ref_cod_menu_submenu = ", $submenu);
         $where = "ref_cod_menu_submenu = {$where}";
         $menu_tutor = $this->db()->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE {$where} LIMIT 1 OFFSET 0");
     }
     if ($menu_tutor) {
         $obj_menu_suspenso = new clsMenuSuspenso();
         $lista_menu = $obj_menu_suspenso->listaNivel($menu_tutor, $idpes);
         $lista_menu_suspenso = $lista_menu;
         if ($lista_menu_suspenso) {
             for ($i = 0, $loop = count($lista_menu_suspenso); $i < $loop; $i++) {
                 $achou = FALSE;
                 if (!$lista_menu_suspenso[$i]['ref_cod_menu_submenu']) {
                     foreach ($lista_menu as $id => $menu) {
                         if ($menu['ref_cod_menu_pai'] == $lista_menu_suspenso[$i]['cod_menu']) {
                             $achou = TRUE;
                         }
                     }
                     if (!$achou) {
                         unset($lista_menu[$i]);
                     }
                 }
             }
             $saida = '<script type="text/javascript">';
             $saida .= 'array_menu = new Array(); array_id = new Array();';
             foreach ($lista_menu as $menu_suspenso) {
                 $ico_menu = '';
                 if (is_numeric($menu_suspenso['ref_cod_ico'])) {
                     $this->db()->Consulta("SELECT caminho FROM portal.imagem WHERE cod_imagem = {$menu_suspenso['ref_cod_ico']} ");
                     if ($this->db()->ProximoRegistro()) {
                         list($ico_menu) = $this->db()->Tupla();
                         $ico_menu = "imagens/banco_imagens/{$ico_menu}";
                     }
                 }
                 $alvo = $menu_suspenso['alvo'] ? $menu_suspenso['alvo'] : '_self';
                 // Corrige o path usando caminhos relativos para permitir a inclusão
                 // de itens no menu que apontem para um módulo
                 if ($uri[1] == 'module') {
                     if (0 === strpos($menu_suspenso['caminho'], 'module')) {
                         $menu_suspenso['caminho'] = '../../' . $menu_suspenso['caminho'];
                     } else {
                         $menu_suspenso['caminho'] = '../../intranet/' . $menu_suspenso['caminho'];
                     }
                 } elseif (0 === strpos($menu_suspenso['caminho'], 'module')) {
                     $menu_suspenso['caminho'] = '../../' . $menu_suspenso['caminho'];
                 }
                 $saida .= "array_menu[array_menu.length] = new Array(\"{$menu_suspenso['tt_menu']}\",{$menu_suspenso['cod_menu']},'{$menu_suspenso['ref_cod_menu_pai']}','', '{$ico_menu}', '{$menu_suspenso['caminho']}', '{$alvo}');";
                 if (!$menu_suspenso['ref_cod_menu_pai']) {
                     $saida .= "array_id[array_id.length] = {$menu_suspenso['cod_menu']};";
                 }
             }
             $saida .= "</script>";
         }
         $saida .= "<script type=\"text/javascript\">\n          setTimeout(\"setXY();\",150);\n          MontaMenu();\n        </script>";
         return $saida;
     }
     return FALSE;
 }
Пример #2
0
 function Inicializar()
 {
     $retorno = "Editar";
     @session_start();
     $this->id_pessoa = $_SESSION['id_pessoa'];
     @session_write_close();
     $this->cod_menu = $_GET['cod_menu'];
     if ($this->cod_menu && !$_POST) {
         @session_start();
         unset($_SESSION['menu_suspenso']);
         $obj = new clsMenuSuspenso();
         $lista = $obj->listaNivel($this->cod_menu, $this->id_pessoa);
         if ($lista) {
             foreach ($lista as $menu) {
                 $_SESSION['menu_suspenso'][] = array('ref_cod_menu_pai' => $menu['ref_cod_menu_pai'], 'cod_menu' => $menu['cod_menu'], 'ref_cod_menu_submenu' => $menu['ref_cod_menu_submenu'], 'tt_menu' => $menu['tt_menu'], 'ico_menu' => $menu['ref_cod_ico'], 'ord_menu' => $menu['ord_menu'], 'caminho' => $menu['caminho'], 'alvo' => $menu['alvo'], 'suprime_menu' => $menu['suprime_menu'], 'ref_cod_tutor_menu' => $_GET['cod_menu'], 'menu_menu_pai' => $menu['menu_menu_pai']);
             }
         }
         if ($_SESSION['menu_suspenso']) {
             foreach ($_SESSION['menu_suspenso'] as $id => $valor) {
                 foreach ($_SESSION['menu_suspenso'] as $id2 => $valor2) {
                     if ($valor2['ref_cod_menu_pai'] == $valor['cod_menu']) {
                         $_SESSION['menu_suspenso'][$id2]['ref_cod_menu_pai'] = $id;
                     }
                 }
             }
         }
         @session_write_close();
     }
     if ($_FILES['ico_menu']['name']) {
         $caminho = "imagens/banco_imagens/";
         $nome_do_arquivo = $_FILES['ico_menu']['name'];
         $extensao = substr($_FILES['ico_menu']['name'], -3);
         $objImagem = new clsPortalImagem(FALSE, 1, 'ico_menu', FALSE, $extensao, FALSE, FALSE, FALSE, $this->id_pessoa);
         if ($cod_imagem = $objImagem->cadastra()) {
             $this->ico_menu = $cod_imagem;
             echo '<script>alert("Ícone inserido!");</script>';
         }
     }
     if (isset($_POST['id_deletar']) && $_POST['id_deletar'] != "" && $_POST['editando'] == 2) {
         @session_start();
         foreach ($_SESSION['menu_suspenso'] as $id => $ref_pai) {
             if ($ref_pai['ref_cod_menu_pai'] == $_POST['id_deletar']) {
                 $arr_del[] = $id;
             }
         }
         if ($arr_del) {
             foreach ($arr_del as $indice) {
                 unset($_SESSION['menu_suspenso'][$indice]);
             }
         }
         if ($_POST['id_deletar'] == 0) {
             unset($_SESSION['menu_suspenso'][0]);
         } else {
             unset($_SESSION['menu_suspenso'][$_POST['id_deletar']]);
         }
     } elseif (!$_POST['lista'] && $_POST) {
         @session_start();
         if ($_POST['ref_cod_menu_submenu']) {
             $db1 = new clsBanco();
             $cod_submenu = @$_POST['ref_cod_menu_submenu'];
             $db1->Consulta("SELECT arquivo FROM menu_submenu WHERE cod_sistema = 2 AND cod_menu_submenu = {$cod_submenu} ");
             while ($db1->ProximoRegistro()) {
                 list($caminho) = $db1->Tupla();
             }
         }
         if ($_POST['editando'] == 1) {
             if ($_POST['tt_menu'] != '' && $_POST['ord_menu'] != '' || $_POST['ord_menu'] == '0' && $_POST['tt_menu'] != '' || $_POST['tt_menu'] != '' && $_POST['ord_menu'] == '0') {
                 $db1 = new clsBanco();
                 if ($_POST['ref_cod_menu_submenu']) {
                     $menu_menu_pai = $db1->CampoUnico("SELECT ref_cod_menu_pai FROM menu_menu mm, menu_submenu ms WHERE mm.cod_menu_menu = ms.ref_cod_menu_menu and ms.cod_menu_submenu = {$_POST['ref_cod_menu_submenu']}");
                 }
                 $icone = $_POST['img_banco'] ? @$_POST['img_banco'] : $cod_imagem;
                 $_SESSION['menu_suspenso'][$_POST['editar']] = array('ref_cod_menu_pai' => $_POST['ref_cod_menu_pai'], 'cod_menu' => $this->cod_menu, 'ref_cod_menu_submenu' => $_POST['ref_cod_menu_submenu'], 'tt_menu' => $_POST['tt_menu'], 'ico_menu' => $icone, 'ord_menu' => $_POST['ord_menu'], 'caminho' => $caminho, 'alvo' => $_POST['alvo'], 'suprime_menu' => $_POST['suprime_menu'], 'ref_cod_tutor_menu' => $_GET['cod_menu'], 'menu_menu_pai' => $menu_menu_pai);
             } else {
                 echo '<script>alert("Os campos Ordem e Título são obrigatórios!");</script>';
             }
         } else {
             if ($_POST['tt_menu'] != '' && $_POST['ord_menu'] != '' || $_POST['ord_menu'] == '0' && $_POST['tt_menu'] != '' || $_POST['tt_menu'] != '' && $_POST['ord_menu'] == '0') {
                 $db1 = new clsBanco();
                 if ($_POST['ref_cod_menu_submenu']) {
                     $menu_menu_pai = $db1->CampoUnico("SELECT ref_cod_menu_pai FROM menu_menu mm, menu_submenu ms WHERE mm.cod_menu_menu = ms.ref_cod_menu_menu and ms.cod_menu_submenu = {$_POST['ref_cod_menu_submenu']}");
                 }
                 $icone = $_POST['img_banco'] ? @$_POST['img_banco'] : $cod_imagem;
                 $_SESSION['menu_suspenso'][] = array('ref_cod_menu_pai' => $_POST['ref_cod_menu_pai'], 'cod_menu' => $this->cod_menu, 'ref_cod_menu_submenu' => $_POST['ref_cod_menu_submenu'], 'tt_menu' => $_POST['tt_menu'], 'ico_menu' => $icone, 'ord_menu' => $_POST['ord_menu'], 'caminho' => $caminho, 'alvo' => $_POST['alvo'], 'suprime_menu' => $_POST['suprime_menu'], 'ref_cod_tutor_menu' => $_GET['cod_menu'], 'menu_menu_pai' => $menu_menu_pai);
             } else {
                 echo '<script>alert("Os campos Ordem e Título são obrigatórios!");</script>';
             }
         }
         @session_write_close();
     }
     if ($_SESSION['menu_suspenso']) {
         $this->saida = "<script>";
         foreach ($_SESSION['menu_suspenso'] as $key => $detalhe) {
             $ico_menu = '';
             if (is_numeric($detalhe['ico_menu'])) {
                 $db = new clsBanco();
                 $db->Consulta("SELECT caminho FROM portal.imagem WHERE cod_imagem = {$detalhe['ico_menu']} ");
                 if ($db->ProximoRegistro()) {
                     list($ico_menu) = $db->Tupla();
                     $ico_menu = 'imagens/banco_imagens/' . $ico_menu;
                 }
             }
             $this->saida .= "array_menu[array_menu.length] = new Array(\"{$detalhe['tt_menu']}\",{$key},'{$detalhe['ref_cod_menu_pai']}','', '{$ico_menu}', '', '','MenuCarregaDados({$key},\\'{$detalhe['ord_menu']}\\',\\'{$detalhe['ref_cod_menu_pai']}\\',\\'{$detalhe['ref_cod_menu']}\\',\\'{$detalhe['ref_cod_menu_submenu']}\\',\\'{$detalhe['tt_menu']}\\',\\'{$detalhe['ico_menu']}\\',\\'{$detalhe['alvo']}\\',\\'{$detalhe['suprime_menu']}\\');');";
             if (empty($detalhe['ref_cod_menu_pai']) && $detalhe['ref_cod_menu_pai'] != '0') {
                 $this->saida .= "array_id[array_id.length] = {$key};";
             }
         }
         $this->saida .= "</script>";
     }
     return $retorno;
 }