Commit 3796b116aaf571f753cea7dc070795976433e88f

Authored by Edmar Moretti
1 parent 602e676d

--no commit message

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