Commit 3796b116aaf571f753cea7dc070795976433e88f

Authored by Edmar Moretti
1 parent 602e676d

--no commit message

admin/js/editormapfile.js
@@ -777,7 +777,7 @@ function montaEditorMetadados(dados) @@ -777,7 +777,7 @@ function montaEditorMetadados(dados)
777 {ajuda:"Extensão geográfica máxima do tema, no formato xmin ymin xmax ymax. É utilizado na opção de 'zoom para o tema'. Quando o tema é baseado em shapefile, esse metadata não é necessário, pois o mapserver consegue calcular a extensão. Já em outros tipos de dados, como Postgis, o parâmetro é necessário. Nesse caso, se não for indicado, o botão de zoom para o tema não será visível para o usuário", 777 {ajuda:"Extensão geográfica máxima do tema, no formato xmin ymin xmax ymax. É utilizado na opção de 'zoom para o tema'. Quando o tema é baseado em shapefile, esse metadata não é necessário, pois o mapserver consegue calcular a extensão. Já em outros tipos de dados, como Postgis, o parâmetro é necessário. Nesse caso, se não for indicado, o botão de zoom para o tema não será visível para o usuário",
778 titulo:"Extensao",id:"extensao",value:dados.extensao,tipo:"text"}, 778 titulo:"Extensao",id:"extensao",value:dados.extensao,tipo:"text"},
779 {ajuda:"Indica se a extensão geográfica do mapa deve ser alterada quando o tema for adicionado ao mapa", 779 {ajuda:"Indica se a extensão geográfica do mapa deve ser alterada quando o tema for adicionado ao mapa",
780 - titulo:"Aplicaextensao",id:"",value:dados.aplicaextensao,tipo:"text",div:"<div id=cAplicaextensao ></div>"}, 780 + titulo:"Aplica extensao",id:"",value:dados.aplicaextensao,tipo:"text",div:"<div id=cAplicaextensao ></div>"},
781 {ajuda:"Indica se o usuário pode fazer download do tema", 781 {ajuda:"Indica se o usuário pode fazer download do tema",
782 titulo:"Download",id:"",value:dados.download,tipo:"text",div:"<div id=cDownload ></div>"}, 782 titulo:"Download",id:"",value:dados.download,tipo:"text",div:"<div id=cDownload ></div>"},
783 {ajuda:"Indica se as classes serão mostradas ou não na legenda. Por padrão é SIM.", 783 {ajuda:"Indica se as classes serão mostradas ou não na legenda. Por padrão é SIM.",
admin/php/classe_arvore.php
@@ -13,12 +13,12 @@ class Arvore @@ -13,12 +13,12 @@ class Arvore
13 //todos os temas 13 //todos os temas
14 public $sql_temas = "select * from i3geoadmin_temas "; 14 public $sql_temas = "select * from i3geoadmin_temas ";
15 //temas de um subgrupo 15 //temas de um subgrupo
16 - public $sql_temasSubgrupo = "select i3geoadmin_n3.id_n3,i3geoadmin_temas.nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema "; 16 + public $sql_temasSubgrupo = "select i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,i3geoadmin_temas.nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema ";
17 function __construct($locaplic) 17 function __construct($locaplic)
18 { 18 {
19 $this->locaplic = $locaplic; 19 $this->locaplic = $locaplic;
20 $dbh = ""; 20 $dbh = "";
21 - error_reporting(0); 21 + error_reporting(E_ALL);
22 include($locaplic."/admin/php/conexao.php"); 22 include($locaplic."/admin/php/conexao.php");
23 $this->dbh = $dbh; 23 $this->dbh = $dbh;
24 // 24 //
@@ -40,6 +40,83 @@ class Arvore @@ -40,6 +40,83 @@ class Arvore
40 $this->dbh = null; 40 $this->dbh = null;
41 $this->dbhw = null; 41 $this->dbhw = null;
42 } 42 }
  43 + //pega a lista de menus
  44 + function pegaListaDeMenus($perfil)
  45 + {
  46 + if($this->editor)
  47 + $sql = 'SELECT * from i3geoadmin_menus order by nome_menu';
  48 + else
  49 + $sql = "SELECT * from i3geoadmin_menus where publicado_menu != 'NAO' or publicado_menu isnull order by nome_menu";
  50 + $regs = $this->execSQL($sql);
  51 + $resultado = array();
  52 + foreach($regs as $reg)
  53 + {
  54 + if ($this->verificaOcorrencia($perfil,explode(",",$reg["perfil_menu"])))
  55 + {
  56 + $status = "fechado";
  57 + if(strtolower($reg["aberto"]) == "sim")
  58 + $status = "aberto";
  59 + $url = "";//$this->urli3geo."/admin/xmlmenutemas.php?id_menu=".$reg["id_menu"];
  60 + $resultado[] = array("desc"=>$reg["desc_menu"],"publicado"=>$reg["publicado_menu"],"nomemenu"=>$reg["nome_menu"],"idmenu"=>$reg["id_menu"],"arquivo"=>"","status"=>$status,"url"=>$url);
  61 + }
  62 + }
  63 + return $resultado;
  64 + }
  65 + //procura um tema tendo como base uma palavra
  66 + function procuraTemas ($procurar,$perfil)
  67 + {
  68 + $procurar = $this->removeAcentos($procurar);
  69 + $menus = $this->pegaListaDeMenus($perfil);
  70 + $resultado = array();
  71 + $subgrupo = array();
  72 + $final = array();
  73 + foreach($menus as $menu)
  74 + {
  75 + $grupos = $this->pegaGruposMenu($menu["idmenu"]);
  76 + foreach($grupos["grupos"] as $grupo)
  77 + {
  78 + if($this->verificaOcorrencia($perfil,explode(",",$grupo["n1_perfil"])))
  79 + {
  80 + $sgrupos = $this->pegaSubgruposGrupo($menu["idmenu"],$grupo["id_n1"]);
  81 + foreach($sgrupos["subgrupos"] as $sgrupo)
  82 + {
  83 + if($this->verificaOcorrencia($perfil,explode(",",$sgrupo["n2_perfil"])))
  84 + {
  85 + $temas = $this->pegaTemasSubGrupo($sgrupo["id_n2"]);
  86 + foreach ($temas as $tema)
  87 + {
  88 + if($this->verificaOcorrencia($perfil,explode(",",$tema["n3_perfil"])))
  89 + {
  90 + $t = $this->pegaTema($tema["id_tema"]);
  91 + $t = $t[0];
  92 + $nome = $this->removeAcentos($tema["nome_tema"]);
  93 + $tags = $this->removeAcentos($tema["tags_tema"]);
  94 + $down = "nao";
  95 + if (strtolower($t["download_tema"]) == "sim")
  96 + {$down = "sim";}
  97 + $texto = array("tid"=>$tema["codigo_tema"],"nome"=>$tema["nome_tema"],"link"=>$t["link_tema"],"download"=>$down);
  98 + if (stristr($nome,$procurar))
  99 + {$resultado[] = $texto;}
  100 + else
  101 + {
  102 + if (stristr($tags,$procurar))
  103 + {$resultado[] = $texto;}
  104 + }
  105 + }
  106 + }
  107 + }
  108 + if (count($resultado) > 0)
  109 + {$subgrupo[] = array("subgrupo"=>$sgrupo["nome_subgrupo"],"temas"=>$resultado);}
  110 + $resultado = array();
  111 + }
  112 + }
  113 + if (count($subgrupo) > 0)
  114 + {$final[] = array("grupo"=>$grupo["nome_grupo"],"subgrupos"=>$subgrupo);}
  115 + $subgrupo = array();
  116 + }
  117 + }
  118 + return $final;
  119 + }
43 //pega os grupos de um menu específico e os temas na raiz do menu 120 //pega os grupos de um menu específico e os temas na raiz do menu
44 function pegaGruposMenu($id_menu) 121 function pegaGruposMenu($id_menu)
45 { 122 {
@@ -81,7 +158,7 @@ class Arvore @@ -81,7 +158,7 @@ class Arvore
81 {$grupos[] = array();} 158 {$grupos[] = array();}
82 foreach($dados["grupos"] as $grupo) 159 foreach($dados["grupos"] as $grupo)
83 { 160 {
84 - if ($this->verificaOcorrencia($perfil,explode(",",$grupo["n1_perfil"]))) 161 + if($this->verificaOcorrencia($perfil,explode(",",$grupo["n1_perfil"])))
85 { 162 {
86 $temas = array(); 163 $temas = array();
87 $raizgrupo = $this->pegaTemasRaizGrupo($id_menu,$grupo["id_n1"]); 164 $raizgrupo = $this->pegaTemasRaizGrupo($id_menu,$grupo["id_n1"]);
@@ -222,5 +299,25 @@ class Arvore @@ -222,5 +299,25 @@ class Arvore
222 } 299 }
223 return $editor; 300 return $editor;
224 } 301 }
  302 + function removeAcentos($s)
  303 + {
  304 + $s = ereg_replace("[áàâã]","a",$s);
  305 + $s = ereg_replace("[ÁÀÂÃ]","A",$s);
  306 + $s = ereg_replace("[éèê]","e",$s);
  307 + $s = ereg_replace("[í]","i",$s);
  308 + $s = ereg_replace("[Í]","I",$s);
  309 + $s = ereg_replace("[ÉÈÊ]","E",$s);
  310 + $s = ereg_replace("[óòôõ]","o",$s);
  311 + $s = ereg_replace("[ÓÒÔÕ]","O",$s);
  312 + $s = ereg_replace("[úùû]","u",$s);
  313 + $s = ereg_replace("[ÚÙÛ]","U",$s);
  314 + $s = str_replace("ç","c",$s);
  315 + $s = str_replace("Ç","C",$s);
  316 + //$str = htmlentities($s);
  317 + $str = preg_replace("/(&)([a-z])([a-z]+;)/i", '$2', $s);
  318 + $str = preg_replace("/[^A-Z0-9]/i", ' ', $str);
  319 + $str = preg_replace("/\s+/i", ' ', $str);
  320 + return $str;
  321 + }
225 } 322 }
226 ?> 323 ?>
227 \ No newline at end of file 324 \ No newline at end of file