From da407e41ffcaf7020967b834292d9bfc366eb0ea Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 1 Feb 2011 19:15:45 +0000 Subject: [PATCH] Adição de uma nova tabela no sistema de admnistração para armazenar o número de acessos de cada tema --- admin/admin.db | Bin 70656 -> 0 bytes admin/php/admin.php | 12 ++++++------ admin/php/classe_arvore.php | 11 +++++++---- admin/php/estatisticas.php | 23 ++++++++++++++--------- admin/php/upgradebanco44_45.php | 30 +++++++++++++++++++++++------- classesjs/classe_util.js | 12 ++++++------ classesphp/classe_mapa.php | 9 +++++---- guia_de_migracao.txt | 5 +++++ testainstal.php | 9 +++++---- 9 files changed, 71 insertions(+), 40 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 168f50e..0d7e384 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/php/admin.php b/admin/php/admin.php index 65b2832..fb0ade9 100644 --- a/admin/php/admin.php +++ b/admin/php/admin.php @@ -189,21 +189,21 @@ function pegaDados($sql,$locaplic="") include("$locaplic/admin/php/conexao.php"); error_reporting(E_ALL); $q = $dbh->query($sql,PDO::FETCH_ASSOC); - //var_dump($q); if($q) { $resultado = $q->fetchAll(); $dbh = null; $dbhw = null; - //error_reporting(0); return $resultado; } else { - $e = $dbh->errorInfo(); - echo " erro: ".$e[2]; - //echo $sql; - return; + $e = $dbh->errorInfo(); + //$e1 = $dbhw->errorInfo(); + $dbh = null; + $dbhw = null; + //echo " erro: ".$e[2]; + throw new Exception(" erro admin.php funcao pegaDados:
".$e[2]."
"); } } /* diff --git a/admin/php/classe_arvore.php b/admin/php/classe_arvore.php index b0bf57d..2ac9dd0 100644 --- a/admin/php/classe_arvore.php +++ b/admin/php/classe_arvore.php @@ -85,8 +85,10 @@ idioma {string} - default = "pt" $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 "; $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 "; - $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 "; + //$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 "; + $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 "; + $this->locaplic = $locaplic; $dbh = ""; error_reporting(0); @@ -293,7 +295,7 @@ Return: {array} */ - function procuraTemasEstrela ($nivel,$fatorestrela,$perfil) + function procuraTemasEstrela($nivel,$fatorestrela,$perfil) { $menus = $this->pegaListaDeMenus($perfil); $resultado = array(); @@ -330,8 +332,9 @@ Return: if (strtolower($t["download_tema"]) == "nao") {$down = "nao";} $texto = array("miniatura"=>$miniatura,"tid"=>$t["codigo_tema"],"nome"=>$this->converte($tema["nome_tema"]),"link"=>$t["link_tema"],"download"=>$down); - $n = abs($t["nacessos"] / $fatorestrela); + $n = intval($t["nacessos"] / $fatorestrela); if($n >= 5){$n = 5;} + if ($n == $nivel) {$temasRaizGrupo[] = $texto;} } @@ -455,7 +458,7 @@ Return: */ function pegaTema($id_tema) { - return $this->execSQL($this->sql_temas."where id_tema = '$id_tema' "); + return $this->execSQL($this->sql_temas." and id_tema = '$id_tema' "); } /* Function: pegaTemasSubGrupo diff --git a/admin/php/estatisticas.php b/admin/php/estatisticas.php index c1de08a..059260c 100644 --- a/admin/php/estatisticas.php +++ b/admin/php/estatisticas.php @@ -46,12 +46,11 @@ i3geo/admin/php/estatisticas.php */ include_once("admin.php"); - $totaltemas = count(pegaDados("select * from i3geoadmin_temas")); -$temasvalidos = pegaDados("select * from i3geoadmin_temas where codigo_tema <> ''"); +$temasvalidos = pegaDados("select codigo_tema,nome_tema,download_tema,kml_tema,ogc_tema,link_tema,tags_tema from i3geoadmin_temas where codigo_tema <> ''"); $temasassocsubgrupos = pegaDados("select id_tema from i3geoadmin_n3 group by id_tema"); +$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"); $ntags = pegaDados("select nome from i3geoadmin_tags"); -error_reporting(0); $totaltemasvalidos = count($temasvalidos); $codigostemas = array(); $ncodigostemas = array(); @@ -61,13 +60,14 @@ $nkmltemas = 0; $nogctemas = 0; $nsemlinktemas = 0; $nsemtagstemas = 0; -$nacessosmaiorqueum = 0; -$nacessosmaiorquedez = 0; -$nacessosmaiorquecem = 0; +$nacessosmaiorqueum = count(pegaDados("select sum(nacessos) as soma from i3geoadmin_acessostema where nacessos > 0 group by codigo_tema")); +$nacessosmaiorquedez = count(pegaDados("select (select sum(nacessos) as soma from i3geoadmin_acessostema where nacessos > 0 group by codigo_tema) as soma where soma > 10")); +$nacessosmaiorquecem = count(pegaDados("select (select sum(nacessos) as soma from i3geoadmin_acessostema where nacessos > 0 group by codigo_tema) as soma where soma > 100")); $temasacessos = array(); +error_reporting(0); foreach($temasvalidos as $tema){ - $ncodigostemas[$tema[codigo_tema]]++; - $nnomestemas[$tema[nome_tema]]++; + $ncodigostemas[$tema["codigo_tema"]]++; + $nnomestemas[$tema["nome_tema"]]++; if(strtolower($tema["download_tema"]) == "sim") {$ndownloadtemas++;} if(strtolower($tema["kml_tema"]) != "nao") @@ -78,6 +78,7 @@ foreach($temasvalidos as $tema){ {$nsemlinktemas++;} if($tema["tags_tema"] == "") {$nsemtagstemas++;} + /* if($tema["nacessos"] > 0) {$nacessosmaiorqueum++;} if($tema["nacessos"] > 10) @@ -88,6 +89,10 @@ foreach($temasvalidos as $tema){ //$temasmaisdecem[] = $tema[nome_tema]; } $temasacessos[$tema[nome_tema]] = $tema["nacessos"]; + */ +} +foreach($nacessostema as $tema){ + $temasacessos[$tema["nome_tema"]] = $tema["soma"]; } $temasmaisdeum = array(); foreach ($ncodigostemas as $n) @@ -124,7 +129,7 @@ echo "  "; echo "Número de tags: ".count($ntags).""; echo ""; -echo "

Aceesos por tema

"; +echo "

Acesos por tema

"; arsort($temasacessos); $temasacessos2 = array_keys($temasacessos); for($i=0;$i<=count($temasacessos2);$i++) diff --git a/admin/php/upgradebanco44_45.php b/admin/php/upgradebanco44_45.php index 761bc37..b6a7075 100644 --- a/admin/php/upgradebanco44_45.php +++ b/admin/php/upgradebanco44_45.php @@ -38,23 +38,27 @@ i3geo/admin/php/criabanco.php */ $funcao = ""; include_once("admin.php"); -error_reporting(0); +include_once("conexao.php"); + if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} - +error_reporting(E_ALL); $tabelas = array( -"CREATE TABLE i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)" +"CREATE TABLE i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)", +"CREATE TABLE i3geoadmin_acessostema (codigo_tema TEXT, nacessos NUMERIC,dia NUMERIC, mes NUMERIC, ano NUMERIC)" ); +/* if($conexaoadmin == "") { - $banco = sqlite_open("../admin.db",0666); - $banco = null; + //$banco = sqlite_open("../admin.db",0666); + //$banco = null; $dbhw = new PDO('sqlite:../admin.db'); } else { include($conexaoadmin); } +*/ foreach($tabelas as $tabela) { if($dbhw->getAttribute(PDO::ATTR_DRIVER_NAME) == "pgsql") @@ -62,7 +66,19 @@ foreach($tabelas as $tabela) $tabela = str_replace("INTEGER PRIMARY KEY","SERIAL PRIMARY KEY NOT NULL",$tabela); } $q = $dbhw->query($tabela); + if($q) + { + $banco = null; + echo "
Feito!!!
";
+		var_dump($tabelas);
+   	}
+   	else
+   	{
+		echo "
Ocorreu algum problema. Tabelas que deveriam ter sido criadas:\n";
+		var_dump($tabelas);
+		$e = $dbhw->errorInfo();
+		throw new Exception($e[2]);
+   	}
 }
-$banco = null;
-echo "Feito!!!";
+
 ?>
\ No newline at end of file
diff --git a/classesjs/classe_util.js b/classesjs/classe_util.js
index a092269..d58c1cf 100644
--- a/classesjs/classe_util.js
+++ b/classesjs/classe_util.js
@@ -2179,15 +2179,15 @@ i3GEO.util = {
 		for (i = 0; i < ns; i++) {
 			var src = scripts[i].getAttribute('src');
 			if (src) {
-				var index = src.lastIndexOf("classesjs/i3geo.js");
+				var index = src.lastIndexOf("/classesjs/i3geo.js");
 				// is it found, at the end of the URL?
-				if ((index > -1) && (index + "classesjs/i3geo.js".length == src.length)) {
-					scriptLocation = src.slice(0, -"classesjs/i3geo.js".length);
+				if ((index > -1) && (index + "/classesjs/i3geo.js".length == src.length)) {
+					scriptLocation = src.slice(0, -"/classesjs/i3geo.js".length);
 					break;
 				}
-				var index = src.lastIndexOf("classesjs/i3geonaocompacto.js");
-				if ((index > -1) && (index + "classesjs/i3geonaocompacto.js".length == src.length)) {
-					scriptLocation = src.slice(0, -"classesjs/i3geonaocompacto.js".length);
+				var index = src.lastIndexOf("/classesjs/i3geonaocompacto.js");
+				if ((index > -1) && (index + "/classesjs/i3geonaocompacto.js".length == src.length)) {
+					scriptLocation = src.slice(0, -"/classesjs/i3geonaocompacto.js".length);
 					break;
 				}
 			}
diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php
index 719df5e..09373b3 100644
--- a/classesphp/classe_mapa.php
+++ b/classesphp/classe_mapa.php
@@ -1566,16 +1566,18 @@ $arq - Nome do arquivo.
 	{
     	$resultado = array();
     	include("$locaplic/admin/php/conexao.php");
-    	$sql = "select nacessos from i3geoadmin_temas WHERE codigo_tema = '$codigo_tema' and not(nacessos isnull)";
+    	$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")).")");
+		/*
+		$sql = "select nacessos from i3geoadmin_temas WHERE codigo_tema = '$codigo_tema' and not(nacessos isnull)";
     	$q = $dbh->query($sql,PDO::FETCH_ASSOC);
     	$dados = $q->fetchAll();
-    	//var_dump($dados);
     	if(count($dados[0])>0)
     	$nacessos = $dados[0]["nacessos"] + 1;
     	else
     	$nacessos = 1;
    		$dbhw->query("UPDATE i3geoadmin_temas SET nacessos = $nacessos WHERE codigo_tema = '$codigo_tema'");
-    	$dbh = null;
+    	*/
+		$dbh = null;
     	$dbhw = null;
 	}
 	//
@@ -1616,6 +1618,5 @@ $arq - Nome do arquivo.
 		{$escreve = fwrite ($abre,$linha);}
 		$fecha = fclose ($abre);
 	}
-	
 }
 ?>
\ No newline at end of file
diff --git a/guia_de_migracao.txt b/guia_de_migracao.txt
index 8ba89b7..d178edb 100644
--- a/guia_de_migracao.txt
+++ b/guia_de_migracao.txt
@@ -26,6 +26,11 @@ Para a versão 4.5
 		Os comentários são armazenados em uma tabela no banco de dados de administração. Essa tabela precisa ser criada no banco.
 		Para criar a tabela veja o item "Outras opções" em http://localhost/i3geo/admin
 		
+	Contagem do número de acessos de cada tema
+		Foi criada uma nova tabela no sistema de administração para guardar o número de vezes que um tema é acessado. Antes
+		a contagem era mantida na tabela i3geoadmin_temas, cuja coluna nacessos foi depreciada. Essa nova tabela guarda também o dia do acesso.
+		Para criar a tabela veja o item "Outras opções" em http://localhost/i3geo/admin
+		
 	O nome dos arquivos js e ccs compactados foram renomeados, incluindo o valor da versão no final. Isso foi feito para se
 	evitar problemas de cache de versões antigas. Os arquivos renomeados foram:
 		classesjs/i3geo_tudo_compacto45.js
diff --git a/testainstal.php b/testainstal.php
index ab265f8..1b6cce7 100644
--- a/testainstal.php
+++ b/testainstal.php
@@ -117,9 +117,10 @@ $tabelas = array(
 	"i3geoadmin_ws"=>"nacessosok,nacessos,autor_ws,desc_ws,id_ws,link_ws,nome_ws,tipo_ws",
 	"i3geoadmin_grupos"=>"it,es,en,desc_grupo,id_grupo,nome_grupo",
 	"i3geoadmin_subgrupos"=>"it,es,en,desc_subgrupo,id_subgrupo,nome_subgrupo",
-	"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",
+	"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",
 	"i3geoadmin_menus"=>"it,es,en,publicado_menu,perfil_menu,aberto,desc_menu,id_menu,nome_menu",
-	"i3geoadmin_comentarios"=>"comentario,data,openidnome,openidimagem,openidservico,openidusuario,openidurl,id_tema"
+	"i3geoadmin_comentarios"=>"comentario,data,openidnome,openidimagem,openidservico,openidusuario,openidurl,id_tema",
+	"i3geoadmin_acessostema"=>"codigo_tema,nacessos,dia,mes,ano"
 );
 include_once("admin/php/conexao.php");
 foreach(array_keys($tabelas) as $tabela)
@@ -139,14 +140,14 @@ foreach(array_keys($tabelas) as $tabela)
 				if(in_array($coluna,array_keys($resultado[0])))
 				{echo "...ok\n";}
 				else
-				{echo "..não encontrada\n";}
+				{echo "..não encontrada. Consulte o i3geo/guia_de_migracao.txt\n";}
 			}
 		}
 		else
 		{echo "...não existem registros cadastrados\n";}
 	}
 	else
-	{echo "..não encontrada\n";}
+	{echo "..não encontrada. Consulte o i3geo/guia_de_migracao.txt\n";}
 }
 echo "\n";
 echo "localizando o cgi...\n";
--
libgit2 0.21.2