Commit 3796b116aaf571f753cea7dc070795976433e88f
1 parent
602e676d
Exists in
master
and in
7 other branches
--no commit message
Showing
2 changed files
with
101 additions
and
4 deletions
Show diff stats
admin/js/editormapfile.js
... | ... | @@ -777,7 +777,7 @@ function montaEditorMetadados(dados) |
777 | 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 | 778 | titulo:"Extensao",id:"extensao",value:dados.extensao,tipo:"text"}, |
779 | 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 | 781 | {ajuda:"Indica se o usuário pode fazer download do tema", |
782 | 782 | titulo:"Download",id:"",value:dados.download,tipo:"text",div:"<div id=cDownload ></div>"}, |
783 | 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 | 13 | //todos os temas |
14 | 14 | public $sql_temas = "select * from i3geoadmin_temas "; |
15 | 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 | 17 | function __construct($locaplic) |
18 | 18 | { |
19 | 19 | $this->locaplic = $locaplic; |
20 | 20 | $dbh = ""; |
21 | - error_reporting(0); | |
21 | + error_reporting(E_ALL); | |
22 | 22 | include($locaplic."/admin/php/conexao.php"); |
23 | 23 | $this->dbh = $dbh; |
24 | 24 | // |
... | ... | @@ -40,6 +40,83 @@ class Arvore |
40 | 40 | $this->dbh = null; |
41 | 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 | 120 | //pega os grupos de um menu específico e os temas na raiz do menu |
44 | 121 | function pegaGruposMenu($id_menu) |
45 | 122 | { |
... | ... | @@ -81,7 +158,7 @@ class Arvore |
81 | 158 | {$grupos[] = array();} |
82 | 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 | 163 | $temas = array(); |
87 | 164 | $raizgrupo = $this->pegaTemasRaizGrupo($id_menu,$grupo["id_n1"]); |
... | ... | @@ -222,5 +299,25 @@ class Arvore |
222 | 299 | } |
223 | 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 | 324 | \ No newline at end of file | ... | ... |