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