Commit da407e41ffcaf7020967b834292d9bfc366eb0ea

Authored by Edmar Moretti
1 parent fa723b9a

Adição de uma nova tabela no sistema de admnistração para armazenar o número de acessos de cada tema

admin/admin.db
No preview for this file type
admin/php/admin.php
... ... @@ -189,21 +189,21 @@ function pegaDados($sql,$locaplic="")
189 189 include("$locaplic/admin/php/conexao.php");
190 190 error_reporting(E_ALL);
191 191 $q = $dbh->query($sql,PDO::FETCH_ASSOC);
192   - //var_dump($q);
193 192 if($q)
194 193 {
195 194 $resultado = $q->fetchAll();
196 195 $dbh = null;
197 196 $dbhw = null;
198   - //error_reporting(0);
199 197 return $resultado;
200 198 }
201 199 else
202 200 {
203   - $e = $dbh->errorInfo();
204   - echo " erro: ".$e[2];
205   - //echo $sql;
206   - return;
  201 + $e = $dbh->errorInfo();
  202 + //$e1 = $dbhw->errorInfo();
  203 + $dbh = null;
  204 + $dbhw = null;
  205 + //echo " erro: ".$e[2];
  206 + throw new Exception(" erro admin.php funcao pegaDados: <br><span style=color:red >".$e[2]."<br><span style=color:green >");
207 207 }
208 208 }
209 209 /*
... ...
admin/php/classe_arvore.php
... ... @@ -85,8 +85,10 @@ idioma {string} - default = &quot;pt&quot;
85 85 $this->sql_temasraiz = "select id_raiz,i3geoadmin_raiz.id_tema,$coluna as nome_tema,tipoa_tema,perfil FROM i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema ";
86 86 $this->sql_temasSubgrupo = "select i3geoadmin_temas.tipoa_tema, i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,i3geoadmin_temas.$coluna as 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 ";
87 87  
88   - $this->sql_temas = "select kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas ";
  88 + //$this->sql_temas = "select kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas ";
89 89  
  90 + $this->sql_temas = "select kmz_tema,b.soma as nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas as a,(SELECT c.codigo_tema codigo_soma,sum( r.nacessos) as soma FROM i3geoadmin_temas c LEFT JOIN i3geoadmin_acessostema r ON (c.codigo_tema = r.codigo_tema) group by c.codigo_tema) as b WHERE a.codigo_tema = b.codigo_soma ";
  91 +
90 92 $this->locaplic = $locaplic;
91 93 $dbh = "";
92 94 error_reporting(0);
... ... @@ -293,7 +295,7 @@ Return:
293 295  
294 296 {array}
295 297 */
296   - function procuraTemasEstrela ($nivel,$fatorestrela,$perfil)
  298 + function procuraTemasEstrela($nivel,$fatorestrela,$perfil)
297 299 {
298 300 $menus = $this->pegaListaDeMenus($perfil);
299 301 $resultado = array();
... ... @@ -330,8 +332,9 @@ Return:
330 332 if (strtolower($t["download_tema"]) == "nao")
331 333 {$down = "nao";}
332 334 $texto = array("miniatura"=>$miniatura,"tid"=>$t["codigo_tema"],"nome"=>$this->converte($tema["nome_tema"]),"link"=>$t["link_tema"],"download"=>$down);
333   - $n = abs($t["nacessos"] / $fatorestrela);
  335 + $n = intval($t["nacessos"] / $fatorestrela);
334 336 if($n >= 5){$n = 5;}
  337 +
335 338 if ($n == $nivel)
336 339 {$temasRaizGrupo[] = $texto;}
337 340 }
... ... @@ -455,7 +458,7 @@ Return:
455 458 */
456 459 function pegaTema($id_tema)
457 460 {
458   - return $this->execSQL($this->sql_temas."where id_tema = '$id_tema' ");
  461 + return $this->execSQL($this->sql_temas." and id_tema = '$id_tema' ");
459 462 }
460 463 /*
461 464 Function: pegaTemasSubGrupo
... ...
admin/php/estatisticas.php
... ... @@ -46,12 +46,11 @@ i3geo/admin/php/estatisticas.php
46 46  
47 47 */
48 48 include_once("admin.php");
49   -
50 49 $totaltemas = count(pegaDados("select * from i3geoadmin_temas"));
51   -$temasvalidos = pegaDados("select * from i3geoadmin_temas where codigo_tema <> ''");
  50 +$temasvalidos = pegaDados("select codigo_tema,nome_tema,download_tema,kml_tema,ogc_tema,link_tema,tags_tema from i3geoadmin_temas where codigo_tema <> ''");
52 51 $temasassocsubgrupos = pegaDados("select id_tema from i3geoadmin_n3 group by id_tema");
  52 +$nacessostema = pegaDados("select b.nome_tema,sum(a.nacessos) as soma,a.codigo_tema from i3geoadmin_acessostema as a,i3geoadmin_temas as b where a.codigo_tema = b.codigo_tema and a.nacessos > 0 group by a.codigo_tema");
53 53 $ntags = pegaDados("select nome from i3geoadmin_tags");
54   -error_reporting(0);
55 54 $totaltemasvalidos = count($temasvalidos);
56 55 $codigostemas = array();
57 56 $ncodigostemas = array();
... ... @@ -61,13 +60,14 @@ $nkmltemas = 0;
61 60 $nogctemas = 0;
62 61 $nsemlinktemas = 0;
63 62 $nsemtagstemas = 0;
64   -$nacessosmaiorqueum = 0;
65   -$nacessosmaiorquedez = 0;
66   -$nacessosmaiorquecem = 0;
  63 +$nacessosmaiorqueum = count(pegaDados("select sum(nacessos) as soma from i3geoadmin_acessostema where nacessos > 0 group by codigo_tema"));
  64 +$nacessosmaiorquedez = count(pegaDados("select (select sum(nacessos) as soma from i3geoadmin_acessostema where nacessos > 0 group by codigo_tema) as soma where soma > 10"));
  65 +$nacessosmaiorquecem = count(pegaDados("select (select sum(nacessos) as soma from i3geoadmin_acessostema where nacessos > 0 group by codigo_tema) as soma where soma > 100"));
67 66 $temasacessos = array();
  67 +error_reporting(0);
68 68 foreach($temasvalidos as $tema){
69   - $ncodigostemas[$tema[codigo_tema]]++;
70   - $nnomestemas[$tema[nome_tema]]++;
  69 + $ncodigostemas[$tema["codigo_tema"]]++;
  70 + $nnomestemas[$tema["nome_tema"]]++;
71 71 if(strtolower($tema["download_tema"]) == "sim")
72 72 {$ndownloadtemas++;}
73 73 if(strtolower($tema["kml_tema"]) != "nao")
... ... @@ -78,6 +78,7 @@ foreach($temasvalidos as $tema){
78 78 {$nsemlinktemas++;}
79 79 if($tema["tags_tema"] == "")
80 80 {$nsemtagstemas++;}
  81 + /*
81 82 if($tema["nacessos"] > 0)
82 83 {$nacessosmaiorqueum++;}
83 84 if($tema["nacessos"] > 10)
... ... @@ -88,6 +89,10 @@ foreach($temasvalidos as $tema){
88 89 //$temasmaisdecem[] = $tema[nome_tema];
89 90 }
90 91 $temasacessos[$tema[nome_tema]] = $tema["nacessos"];
  92 + */
  93 +}
  94 +foreach($nacessostema as $tema){
  95 + $temasacessos[$tema["nome_tema"]] = $tema["soma"];
91 96 }
92 97 $temasmaisdeum = array();
93 98 foreach ($ncodigostemas as $n)
... ... @@ -124,7 +129,7 @@ echo &quot;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
124 129 echo "<tr><td><b>Número de tags: </b></td><td>".count($ntags)."</td><td></td></tr>";
125 130  
126 131 echo "</table>";
127   -echo "<p><b>Aceesos por tema</b></p>";
  132 +echo "<p><b>Acesos por tema</b></p>";
128 133 arsort($temasacessos);
129 134 $temasacessos2 = array_keys($temasacessos);
130 135 for($i=0;$i<=count($temasacessos2);$i++)
... ...
admin/php/upgradebanco44_45.php
... ... @@ -38,23 +38,27 @@ i3geo/admin/php/criabanco.php
38 38 */
39 39 $funcao = "";
40 40 include_once("admin.php");
41   -error_reporting(0);
  41 +include_once("conexao.php");
  42 +
42 43 if(verificaEditores($editores) == "nao")
43 44 {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;}
44   -
  45 +error_reporting(E_ALL);
45 46 $tabelas = array(
46   -"CREATE TABLE i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)"
  47 +"CREATE TABLE i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)",
  48 +"CREATE TABLE i3geoadmin_acessostema (codigo_tema TEXT, nacessos NUMERIC,dia NUMERIC, mes NUMERIC, ano NUMERIC)"
47 49 );
  50 +/*
48 51 if($conexaoadmin == "")
49 52 {
50   - $banco = sqlite_open("../admin.db",0666);
51   - $banco = null;
  53 + //$banco = sqlite_open("../admin.db",0666);
  54 + //$banco = null;
52 55 $dbhw = new PDO('sqlite:../admin.db');
53 56 }
54 57 else
55 58 {
56 59 include($conexaoadmin);
57 60 }
  61 +*/
58 62 foreach($tabelas as $tabela)
59 63 {
60 64 if($dbhw->getAttribute(PDO::ATTR_DRIVER_NAME) == "pgsql")
... ... @@ -62,7 +66,19 @@ foreach($tabelas as $tabela)
62 66 $tabela = str_replace("INTEGER PRIMARY KEY","SERIAL PRIMARY KEY NOT NULL",$tabela);
63 67 }
64 68 $q = $dbhw->query($tabela);
  69 + if($q)
  70 + {
  71 + $banco = null;
  72 + echo "<br>Feito!!!<pre>";
  73 + var_dump($tabelas);
  74 + }
  75 + else
  76 + {
  77 + echo "<pre>Ocorreu algum problema. Tabelas que deveriam ter sido criadas:\n";
  78 + var_dump($tabelas);
  79 + $e = $dbhw->errorInfo();
  80 + throw new Exception($e[2]);
  81 + }
65 82 }
66   -$banco = null;
67   -echo "Feito!!!";
  83 +
68 84 ?>
69 85 \ No newline at end of file
... ...
classesjs/classe_util.js
... ... @@ -2179,15 +2179,15 @@ i3GEO.util = {
2179 2179 for (i = 0; i < ns; i++) {
2180 2180 var src = scripts[i].getAttribute('src');
2181 2181 if (src) {
2182   - var index = src.lastIndexOf("classesjs/i3geo.js");
  2182 + var index = src.lastIndexOf("/classesjs/i3geo.js");
2183 2183 // is it found, at the end of the URL?
2184   - if ((index > -1) && (index + "classesjs/i3geo.js".length == src.length)) {
2185   - scriptLocation = src.slice(0, -"classesjs/i3geo.js".length);
  2184 + if ((index > -1) && (index + "/classesjs/i3geo.js".length == src.length)) {
  2185 + scriptLocation = src.slice(0, -"/classesjs/i3geo.js".length);
2186 2186 break;
2187 2187 }
2188   - var index = src.lastIndexOf("classesjs/i3geonaocompacto.js");
2189   - if ((index > -1) && (index + "classesjs/i3geonaocompacto.js".length == src.length)) {
2190   - scriptLocation = src.slice(0, -"classesjs/i3geonaocompacto.js".length);
  2188 + var index = src.lastIndexOf("/classesjs/i3geonaocompacto.js");
  2189 + if ((index > -1) && (index + "/classesjs/i3geonaocompacto.js".length == src.length)) {
  2190 + scriptLocation = src.slice(0, -"/classesjs/i3geonaocompacto.js".length);
2191 2191 break;
2192 2192 }
2193 2193 }
... ...
classesphp/classe_mapa.php
... ... @@ -1566,16 +1566,18 @@ $arq - Nome do arquivo.
1566 1566 {
1567 1567 $resultado = array();
1568 1568 include("$locaplic/admin/php/conexao.php");
1569   - $sql = "select nacessos from i3geoadmin_temas WHERE codigo_tema = '$codigo_tema' and not(nacessos isnull)";
  1569 + $dbhw->query("INSERT INTO i3geoadmin_acessostema (codigo_tema,nacessos,dia,mes,ano) VALUES ('$codigo_tema',1,".abs(date("d")).",".abs(date("m")).",".abs(date("Y")).")");
  1570 + /*
  1571 + $sql = "select nacessos from i3geoadmin_temas WHERE codigo_tema = '$codigo_tema' and not(nacessos isnull)";
1570 1572 $q = $dbh->query($sql,PDO::FETCH_ASSOC);
1571 1573 $dados = $q->fetchAll();
1572   - //var_dump($dados);
1573 1574 if(count($dados[0])>0)
1574 1575 $nacessos = $dados[0]["nacessos"] + 1;
1575 1576 else
1576 1577 $nacessos = 1;
1577 1578 $dbhw->query("UPDATE i3geoadmin_temas SET nacessos = $nacessos WHERE codigo_tema = '$codigo_tema'");
1578   - $dbh = null;
  1579 + */
  1580 + $dbh = null;
1579 1581 $dbhw = null;
1580 1582 }
1581 1583 //
... ... @@ -1616,6 +1618,5 @@ $arq - Nome do arquivo.
1616 1618 {$escreve = fwrite ($abre,$linha);}
1617 1619 $fecha = fclose ($abre);
1618 1620 }
1619   -
1620 1621 }
1621 1622 ?>
1622 1623 \ No newline at end of file
... ...
guia_de_migracao.txt
... ... @@ -26,6 +26,11 @@ Para a versão 4.5
26 26 Os comentários são armazenados em uma tabela no banco de dados de administração. Essa tabela precisa ser criada no banco.
27 27 Para criar a tabela veja o item "Outras opções" em http://localhost/i3geo/admin
28 28  
  29 + Contagem do número de acessos de cada tema
  30 + Foi criada uma nova tabela no sistema de administração para guardar o número de vezes que um tema é acessado. Antes
  31 + a contagem era mantida na tabela i3geoadmin_temas, cuja coluna nacessos foi depreciada. Essa nova tabela guarda também o dia do acesso.
  32 + Para criar a tabela veja o item "Outras opções" em http://localhost/i3geo/admin
  33 +
29 34 O nome dos arquivos js e ccs compactados foram renomeados, incluindo o valor da versão no final. Isso foi feito para se
30 35 evitar problemas de cache de versões antigas. Os arquivos renomeados foram:
31 36 classesjs/i3geo_tudo_compacto45.js
... ...
testainstal.php
... ... @@ -117,9 +117,10 @@ $tabelas = array(
117 117 "i3geoadmin_ws"=>"nacessosok,nacessos,autor_ws,desc_ws,id_ws,link_ws,nome_ws,tipo_ws",
118 118 "i3geoadmin_grupos"=>"it,es,en,desc_grupo,id_grupo,nome_grupo",
119 119 "i3geoadmin_subgrupos"=>"it,es,en,desc_subgrupo,id_subgrupo,nome_subgrupo",
120   - "i3geoadmin_temas"=>"it,es,en,kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema",
  120 + "i3geoadmin_temas"=>"it,es,en,kmz_tema,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema",
121 121 "i3geoadmin_menus"=>"it,es,en,publicado_menu,perfil_menu,aberto,desc_menu,id_menu,nome_menu",
122   - "i3geoadmin_comentarios"=>"comentario,data,openidnome,openidimagem,openidservico,openidusuario,openidurl,id_tema"
  122 + "i3geoadmin_comentarios"=>"comentario,data,openidnome,openidimagem,openidservico,openidusuario,openidurl,id_tema",
  123 + "i3geoadmin_acessostema"=>"codigo_tema,nacessos,dia,mes,ano"
123 124 );
124 125 include_once("admin/php/conexao.php");
125 126 foreach(array_keys($tabelas) as $tabela)
... ... @@ -139,14 +140,14 @@ foreach(array_keys($tabelas) as $tabela)
139 140 if(in_array($coluna,array_keys($resultado[0])))
140 141 {echo "...ok\n";}
141 142 else
142   - {echo "<span style=color:red >..n&atilde;o encontrada</span>\n";}
  143 + {echo "<span style=color:red >..n&atilde;o encontrada. Consulte o i3geo/guia_de_migracao.txt</span>\n";}
143 144 }
144 145 }
145 146 else
146 147 {echo "<span style=color:red >...n&atilde;o existem registros cadastrados</span>\n";}
147 148 }
148 149 else
149   - {echo "<span style=color:red >..n&atilde;o encontrada</span>\n";}
  150 + {echo "<span style=color:red >..n&atilde;o encontrada. Consulte o i3geo/guia_de_migracao.txt</span>\n";}
150 151 }
151 152 echo "\n";
152 153 echo "localizando o cgi...\n";
... ...