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,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 |