From ac82a8995e63f5af6b5e5093b0a2cee3242d5792 Mon Sep 17 00:00:00 2001 From: ARNO* <arno@rezo.net> Date: Fri, 5 Jul 2002 05:43:04 +0000 Subject: [PATCH] Nouveau systeme de decompte des visites et d'enregistrement des referers --- ecrire/config-fonctions.php3 | 27 +++- ecrire/data/engines-list.ini | 214 ++++++++++++++++++++++++++++++ ecrire/inc_base.php3 | 25 ++++ ecrire/inc_presentation.php3 | 18 ++- ecrire/inc_statistiques.php3 | 210 +++++++++++++++++++++++++++++ ecrire/inc_version.php3 | 4 +- ecrire/index.php3 | 7 +- ecrire/statistiques_referers.php3 | 90 +++++++++++++ ecrire/statistiques_visites.php3 | 118 ++++++++++++++++ inc-public.php3 | 2 +- inc-stats.php3 | 48 ++++++- 11 files changed, 747 insertions(+), 16 deletions(-) create mode 100644 ecrire/data/engines-list.ini create mode 100644 ecrire/inc_statistiques.php3 create mode 100644 ecrire/statistiques_referers.php3 create mode 100644 ecrire/statistiques_visites.php3 diff --git a/ecrire/config-fonctions.php3 b/ecrire/config-fonctions.php3 index 87d25e7a80..bb9f90d456 100644 --- a/ecrire/config-fonctions.php3 +++ b/ecrire/config-fonctions.php3 @@ -44,6 +44,7 @@ if ($changer_config == 'oui') { ecrire_meta("activer_messagerie", $activer_messagerie); ecrire_meta("activer_imessage", $activer_imessage); ecrire_meta("activer_statistiques", $activer_statistiques); + ecrire_meta("activer_statistiques_ref", $activer_statistiques_ref); ecrire_meta("suivi_edito", $suivi_edito); if ($adresse_suivi) ecrire_meta("adresse_suivi", $adresse_suivi); @@ -202,6 +203,7 @@ fin_cadre_relief(); debut_cadre_relief("statistiques-24.gif"); $activer_statistiques=lire_meta("activer_statistiques"); + $activer_statistiques_ref=lire_meta("activer_statistiques_ref"); echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3 WIDTH=\"100%\">"; @@ -226,13 +228,36 @@ debut_cadre_relief("statistiques-24.gif"); echo " <INPUT TYPE='radio' NAME='activer_statistiques' VALUE='non' id='statistiques_off'>"; echo " <label for='statistiques_off'>Ne pas gérer les statistiques</label> "; } - echo "</FONT>"; echo "</TD></TR>\n"; + if ($activer_statistiques != "non") { + echo "<TR><TD BACKGROUND='img_pack/rien.gif'>"; + echo "<FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2 COLOR='#000000'>Votre site doit-il conserver les <i>referers</i> ?</FONT>"; + echo "</TD></TR>"; + + + echo "<TR><TD BACKGROUND='img_pack/rien.gif' ALIGN='center'>"; + echo "<FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2 COLOR='#000000'>"; + if ($activer_statistiques_ref!="oui"){ + echo "<INPUT TYPE='radio' NAME='activer_statistiques_ref' VALUE='oui' id='statistiques_ref_on'>"; + echo " <label for='statistiques_ref_on'>Gérer les referers</label> "; + echo " <INPUT TYPE='radio' NAME='activer_statistiques_ref' VALUE='non' id='statistiques_ref_off' CHECKED>"; + echo " <B><label for='statistiques_ref_off'>Ne pas gérer les referers</label></B> "; + }else{ + echo "<INPUT TYPE='radio' NAME='activer_statistiques_ref' VALUE='oui' id='statistiques_ref_on' CHECKED>"; + echo " <B><label for='statistiques_ref_on'>Gérer les referers</label></B> "; + echo " <INPUT TYPE='radio' NAME='activer_statistiques_ref' VALUE='non' id='statistiques_ref_off'>"; + echo " <label for='statistiques_ref_off'>Ne pas gérer les referers</label> "; + } + echo "</FONT>"; + echo "</TD></TR>\n"; + } + + echo "<TR><TD ALIGN='right'>"; echo "<INPUT TYPE='submit' NAME='Valider' VALUE='Valider' CLASS='fondo'>"; echo "</TD></TR>"; diff --git a/ecrire/data/engines-list.ini b/ecrire/data/engines-list.ini new file mode 100644 index 0000000000..f787f82cae --- /dev/null +++ b/ecrire/data/engines-list.ini @@ -0,0 +1,214 @@ +# ----------------------------------------------------------------------------- + +# Les Visiteurs - Engines List + +# ----------------------------------------------------------------------------- + +# [Engine Name] + +# word= | word => query | directory + +# host 1 + +# host 2 + +# hots ... + +# ----------------------------------------------------------------------------- + +# sort the list according your visits (see your referrers). + +# ----------------------------------------------------------------------------- + + + +[Google] + +q= + +www.google.com + +www.google.fr + +www.google.cl + +www.google.be + +www.google.co.uk + +www.google.de + +www.google.ca + +www.google.it + +web.toile.com + + + +[Voila] + +kw= + +search.ke.voila.fr + +search.voila.com + +moteur.voila.fr + +search.voila.fr + +beta.voila.fr + + + +[Yahoo !/Google] + +p= + +fr.google.yahoo.com + +google.yahoo.com + + + +[Yahoo !] + +p= + +fr.search.yahoo.com + +ink.yahoo.fr + +search.yahoo.fr + +fr.ink.yahoo.com + +ink.yahoo.com + + + +[Yahoo !] + +directory + +fr.dir.yahoo.com + + + +[AltaVista] + +q= + +www.altavista.com + +search.fr.altavista.com + +search.altavista.com + +www.altavista.fr + +fr.altavista.com + +altavista.fr + +listings.altavista.com + + + +[Lycos] + +query= + +www.lycos.fr + +vachercher.lycos.fr + + + +[Nomade] + +s= + +rechercher.nomade.fr + +ie4.nomade.fr + +rechercher.nomade.tiscali.fr + + + +[Lycos] + +MT= + +hotbot.lycos.com + + + +[Francite] + +name= + +recherche.francite.com + + + +[MSN] + +s= + +leguide.fr.msn.com + +leguide.msn.fr + + + +[MSN] + +q= + +search.msn.fr + +search.msn.com + +auto.search.msn.com + + + +[Excite] + +search= + +www.excite.fr + + + +[AOL] + +q= + +www.aolrecherche.aol.fr + + + +[AllTheWeb] + +q= + +www.alltheweb.com + + + +[Netscape] + +search= + +search-intl.netscape.com + +search.netscape.com + + + + + diff --git a/ecrire/inc_base.php3 b/ecrire/inc_base.php3 index d42f2b8af3..f98ed31a58 100644 --- a/ecrire/inc_base.php3 +++ b/ecrire/inc_base.php3 @@ -256,6 +256,31 @@ function creer_base() { KEY statut(statut))"; $result = spip_query($query); + $query = "CREATE TABLE spip_visites_temp ( + date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, + ip varchar(16) NOT NULL, + type varchar(16) NOT NULL, + referer text NOT NULL)"; + $result = spip_query($query); + + $query = "CREATE TABLE spip_visites ( + date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, + type varchar(16) NOT NULL, + visites bigint(21) DEFAULT '0' NOT NULL)"; + $result = spip_query($query); + + $query = "CREATE TABLE spip_visites_referers ( + id_referer bigint(21) DEFAULT '0' NOT NULL auto_increment, + date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, + referer text, + referer_md5 varchar(16) NOT NULL, + type varchar(16) NOT NULL, + visites bigint(21) DEFAULT '0' NOT NULL, + PRIMARY KEY (id_referer), + KEY type (type), + KEY referer_md5 (referer_md5))"; + $result = spip_query($query); + // // Relations diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3 index 5705b025bb..0a18d9620c 100644 --- a/ecrire/inc_presentation.php3 +++ b/ecrire/inc_presentation.php3 @@ -433,7 +433,7 @@ function afficher_articles($titre_table, $requete, $afficher_visites = false, $a $s = affdate($date); if ($activer_statistiques != "non" AND $afficher_visites AND $visites > 0) { - $s .= "<br><font size=\"1\">($visites visites)</font>"; + $s .= "<br><font size=\"1\">(<a href='statistiques_visites.php3?id_article=$id_article'>$visites visites</a>)</font>"; } $vals[] = $s; @@ -925,9 +925,12 @@ function barre_onglets($rubrique, $onglet){ debut_onglet(); if ($rubrique == "statistiques"){ - onglet("Répartition des entrées", "statistiques.php3", "repartition", $onglet, "statistiques-24.gif"); + onglet("Évolution des visites", "statistiques_visites.php3", "evolution", $onglet, "statistiques-24.gif"); + onglet("Répartition des entrées", "statistiques.php3", "repartition", $onglet, ""); + $activer_statistiques_ref = lire_meta("activer_statistiques_ref"); + if ($activer_statistiques_ref == "oui") onglet("Les referers du jour", "statistiques_referers.php3", "referers", $onglet, ""); onglet("Articles récents", "statistiques_recents.php3", "recents", $onglet, "article-24.gif"); - onglet("Tous les articles", "statistiques_tous.php3", "tous", $onglet, "article-24.gif"); + onglet("Tous les articles", "statistiques_tous.php3", "tous", $onglet, ""); } if ($rubrique == "administration"){ @@ -1257,7 +1260,7 @@ function debut_page($titre = "", $rubrique = "asuivre", $sous_rubrique = "asuivr else if ($connect_statut == '0minirezo' and !$connect_toutes_rubriques){ bandeau_barre_verticale(); echo "<td background=''>"; - icone_bandeau_principal ("Statistiques du site", "statistiques.php3", "administration-48.gif", "administration", $rubrique); + icone_bandeau_principal ("Statistiques du site", "statistiques_visites.php3", "administration-48.gif", "administration", $rubrique); echo "</td>"; } echo "<td background='' width='100%'> </td>"; @@ -1326,7 +1329,7 @@ function debut_page($titre = "", $rubrique = "asuivre", $sous_rubrique = "asuivr } } else if ($rubrique == "administration"){ - icone_bandeau_secondaire ("Statistiques des visites", "statistiques.php3", "statistiques-24.gif", "statistiques", $sous_rubrique); + icone_bandeau_secondaire ("Statistiques des visites", "statistiques_visites.php3", "statistiques-24.gif", "statistiques", $sous_rubrique); if ($connect_toutes_rubriques) { icone_bandeau_secondaire ("Configuration du site", "configuration.php3", "administration-24.gif", "configuration", $sous_rubrique); icone_bandeau_secondaire ("Gestion de la base", "admin_tech.php3", "base-24.gif", "base", $sous_rubrique); @@ -1567,7 +1570,10 @@ est distribué <a href='gpl.txt'>sous licence GPL</a> <?php if (ereg("index.php3$", $GLOBALS['REQUEST_URI'])) { - echo "<br>Les icones de l'interface sont distribuées en GPL par <a href='http://jimmac.musichall.cz/'>Jakub 'Jimmac' Steiner</a>"; + echo "<br>Les icones de l'interface sont distribués en GPL par <a href='http://jimmac.musichall.cz/'>Jakub 'Jimmac' Steiner</a>"; +} +if (ereg("statistiques_visites.php3$", $GLOBALS['REQUEST_URI']) OR ereg("statistiques_referers.php3$", $GLOBALS['REQUEST_URI'])) { + echo "<br>L'affichage des requêtes des moteurs de recherche est réalisé<br>à partir d'un extrait du code de <a href='http://www.phpinfo.net/'>Visiteurs</a>,<br> distribué en GPL par Jean-Pierre Dézélus."; } ?> </div></blockquote> diff --git a/ecrire/inc_statistiques.php3 b/ecrire/inc_statistiques.php3 new file mode 100644 index 0000000000..1cacc24f7f --- /dev/null +++ b/ecrire/inc_statistiques.php3 @@ -0,0 +1,210 @@ +<?php + +// +// Ce fichier ne sera execute qu'une fois +if (defined("_ECRIRE_INC_STATISTIQUES")) return; +define("_ECRIRE_INC_STATISTIQUES", "1"); + + +function stats_load_engines() +{ + + $file_name = 'data/engines-list.ini'; + if ($fp = @fopen($file_name, 'r')) + { + while ($data = fgets($fp, 256)) + { + $data = trim(chop($data)); + + if (!ereg('^#', $data) && $data != '') + { + if (ereg('^\[(.*)\]$', $data, $engines)) + { + // engine + $engine = $engines[1]; + + // query | dir + if (!feof($fp)) + { + $data = fgets($fp, 256); + $query_or_dir = trim(chop($data)); + } + } + else + { + $host = $data; + $arr_engines[] = Array($engine, $query_or_dir, $host); + } + } + } + fclose($fp); + } + return $arr_engines; +} + +function stats_show_keywords($kw_referer, $kw_referer_host) +{ + global $arr_engines; + + if (sizeof($arr_engines) == 0) { + // Charger les moteurs de recherche + $arr_engines = stats_load_engines(); + } + + $url = parse_url( $kw_referer ); + $query = $url['query']; + $host = $url['host']; + + parse_str($query); + + $keywords = ''; + $found = false; + + for ($cnt = 0; $cnt < sizeof($arr_engines) && !$found; $cnt++) + { + if ($found = ($host == $arr_engines[$cnt][2])) + { + $kw_referer_host = $arr_engines[$cnt][0]; + $keywords = ereg('=', $arr_engines[$cnt][1]) + ? ${str_replace('=', '', $arr_engines[$cnt][1])} + : $lvm_directory; + } + } + + $nom_url = substr(strip_tags($kw_referer_host),0,40); + + $buffer = " <a href='".strip_tags($kw_referer)."'>".$nom_url."</a>\n"; + + if ($keywords != '') + { + $buffer .= "(<b>" .trim(stripslashes(htmlentities($keywords)))."</b>)\n"; + } + + return( $buffer ); + +} + + + +function calculer_visites(){ + + // Selectionner les dates > 24 heures + $query_date= "SELECT date FROM spip_visites_temp WHERE date < DATE_SUB(NOW(),INTERVAL 1 DAY) GROUP BY date"; + $result_date = spip_query($query_date); + while ($row_date = mysql_fetch_array($result_date)) { + $visites = ""; + $referers = ""; + + $date = $row_date['date']; + + + // Nombre de visiteurs uniques sur le site + $query = "SELECT ip AS total_visites FROM spip_visites_temp WHERE date='$date' GROUP BY ip"; + $result = spip_query($query); + $total_visites = mysql_num_rows($result); + $query_insert = "INSERT spip_visites (date, type, visites) VALUES ('$date', 'tout', '$total_visites');"; + $result_insert = spip_query($query_insert); + + + // Recuperer les donnees du log + $query = "SELECT * FROM spip_visites_temp WHERE date='$date'"; + $result = spip_query($query); + + while ($row = mysql_fetch_array($result)) { + $ip = $row['ip']; + $type = $row['type']; + $referer = $row['referer']; + + $visites[$type][$ip] = 1; + if (strlen($referer) > 0) { + $referers[$referer][$type][$ip] = 1; + } + } + + // Nombre de visiteurs par articles + + $query = "SELECT id_article, visites FROM spip_articles"; + $result = spip_query($query); + + while ($row = mysql_fetch_array($result)) { + $id_article = $row['id_article']; + $vis_article = $row['visites']; + $visites_articles[$id_article] = $vis_article; + } + + + while (list($key, $value) = each($visites)) { + $type_page = $key; + $visites_uniques = count($value); + + + if (ereg("^article([0-9]+)", $type_page, $regs)){ + $id_article = $regs[1]; + $total_article = $visites_articles[$id_article] + $visites_uniques; + $query_insert = "INSERT spip_visites (date, type, visites) VALUES ('$date', 'article$id_article', '$visites_uniques');"; + $result_insert = spip_query($query_insert); + $query_insert = "UPDATE spip_articles SET visites = '$total_article' WHERE id_article = '$id_article'"; + $result_insert = spip_query($query_insert); + } + } + + $activer_statistiques_ref=lire_meta("activer_statistiques_ref"); + + if ($activer_statistiques_ref == "oui"){ + while (list($key, $value) = each($referers)) { + $referer = $key; + $ref_md5 = substr(md5($referer), 0, 15); + + + + //echo stats_show_keywords($referer, $referer); + + $total_ref = 0; + while (list($key2,$value2) = each ($value)) { + $value2 = count($value2); + $total_ref = $total_ref + $value2; + + if (ereg("^article([0-9]+)", $key2, $regs)){ + $id_article = $regs[1]; + $query = "SELECT id_referer, visites FROM spip_visites_referers WHERE type = 'article$id_article' AND referer_md5 = '$ref_md5'"; + $result = spip_query($query); + if ($row = mysql_fetch_array($result)) { + $id_referer = $row['id_referer']; + $total_visites = $row['visites'] + $value2; + $query_insert = "UPDATE spip_visites_referers SET visites = $total_visites WHERE id_referer = '$id_referer'"; + $result_insert = spip_query($query_insert); + } + else { + $query_insert = "INSERT spip_visites_referers (date, referer, referer_md5, type, visites) VALUES ('$date', '$referer', '$ref_md5', 'article$id_article', '$value2');"; + $result_insert = spip_query($query_insert); + } + } + + } + + $query = "SELECT id_referer, visites FROM spip_visites_referers WHERE type = 'tout' AND referer_md5 = '$ref_md5'"; + $result = spip_query($query); + if ($row = mysql_fetch_array($result)) { + $id_referer = $row['id_referer']; + $total_visites = $row['visites'] + $total_ref; + $query_insert = "UPDATE spip_visites_referers SET visites = $total_visites WHERE id_referer = '$id_referer'"; + $result_insert = spip_query($query_insert); + } + else { + $query_insert = "INSERT spip_visites_referers (date, referer, referer_md5, type, visites) VALUES ('$date', '$referer', '$ref_md5', 'tout', '$total_ref');"; + $result_insert = spip_query($query_insert); + } + } + } + + $query_effacer = "DELETE FROM spip_visites_temp WHERE date = '$date'"; + $result_effacer = spip_query($query_effacer); + + } + $query_effacer = "DELETE FROM spip_visites_referers WHERE date < DATE_SUB(NOW(),INTERVAL 7 DAY) AND visites = '1'"; + $result_effacer = spip_query($query_effacer); +} + + +?> + diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index 2d0279dc20..250071bda7 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -13,11 +13,11 @@ define("_ECRIRE_INC_VERSION", "1"); // // version de la base -$spip_version = 1.423; +$spip_version = 1.431; // version de spip // (mettre a jour a la main et conserver la mention "CVS") -$spip_version_affichee = "1.4d1 CVS"; +$spip_version_affichee = "1.4c8 CVS"; // version de spip / tag if (ereg('Name: v(.*) ','$Name$', $regs)) $spip_version_affichee = $regs[1]; diff --git a/ecrire/index.php3 b/ecrire/index.php3 index f8dc4ae245..a4af2a4f5a 100644 --- a/ecrire/index.php3 +++ b/ecrire/index.php3 @@ -201,7 +201,7 @@ if ($activer_messagerie != 'non' AND $connect_activer_messagerie != 'non') { if ($connect_statut == "0minirezo") { echo "<p>"; - icone_horizontale("Statistiques du site", "statistiques.php3", "statistiques-24.gif","rien.gif"); + icone_horizontale("Statistiques du site", "statistiques_visites.php3", "statistiques-24.gif","rien.gif"); icone_horizontale("Suivi des forums", "controle_forum.php3", "suivi-forum-24.gif","rien.gif"); } @@ -450,6 +450,11 @@ if (($date - $date_opt) > 24 * 3600) { ecrire_metas(); include ("optimiser.php3"); } +// Traitement des statistiques +if (($date - $date_opt) > 8 * 3600) { + include ("inc_statistiques.php3"); + calculer_visites(); +} include_local ("inc_mail.php3"); diff --git a/ecrire/statistiques_referers.php3 b/ecrire/statistiques_referers.php3 new file mode 100644 index 0000000000..9762e2fbdf --- /dev/null +++ b/ecrire/statistiques_referers.php3 @@ -0,0 +1,90 @@ +<?php + +include ("inc.php3"); +include ("inc_statistiques.php3"); + + +debut_page("Statistiques", "administration", "statistiques"); + + +echo "<br><br><br>"; +gros_titre("Les referers du jour"); +barre_onglets("statistiques", "referers"); + +debut_gauche(); + + +debut_boite_info(); + +echo "<FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2>"; +echo "<P align=left>".propre("Cette page présente la liste des {referers}, c'est-à-dire des sites contenant des liens menant vers votre propre site, uniquement pour aujourd'hui: en effet, cette liste est remise à zéro toutes les 24 heures."); + + +echo "</FONT>"; + +fin_boite_info(); + + + + + +debut_droite(); + +if ($connect_statut != '0minirezo') { + echo "Vous n'avez pas accès à cette page."; + fin_page(); + exit; +} + + +////// + + echo "<font face='verdana,arial,helvetica,sans-serif' size=2>"; + + + echo "<ul>"; + // Recuperer les donnees du log + $query = "SELECT * FROM spip_visites_temp"; + $result = spip_query($query); + + while ($row = mysql_fetch_array($result)) { + $ip = $row['ip']; + $type = $row['type']; + $referer = $row['referer']; + + if (strlen($referer) > 0) { + $referers[$referer][$type][$ip] = 1; + } + } + + while (list($key, $value) = each($referers)) { + $referer = $key; + $ref_md5 = substr(md5($referer), 0, 15); + + + echo "\n<li>"; + + $total_ref = 0; + while (list($key2,$value2) = each ($value)) { + $value2 = count($value2); + $total_ref = $total_ref + $value2; + } + + if ($total_ref > 5) echo "<font color='red'>$total_ref liens : </font>"; + else if ($total_ref > 1) echo "$total_ref liens : "; + else echo "<font color='#999999'>$total_ref lien : </font>"; + + echo stats_show_keywords($referer, $referer); + + + } + + + + echo "</ul>"; + echo "</font>"; + +fin_page(); + +?> + diff --git a/ecrire/statistiques_visites.php3 b/ecrire/statistiques_visites.php3 new file mode 100644 index 0000000000..d230a9c71d --- /dev/null +++ b/ecrire/statistiques_visites.php3 @@ -0,0 +1,118 @@ +<?php + +include ("inc.php3"); +include ("inc_statistiques.php3"); + + +debut_page("Statistiques", "administration", "statistiques"); + +echo "<br><br><br>"; +gros_titre("Évolution des visites"); +barre_onglets("statistiques", "evolution"); + +debut_gauche(); + + +/* +debut_boite_info(); +echo "<FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2>"; +echo "<P align=left>".propre("Le système de statistiques intégré à SPIP est volontairement rudimentaire (afin de ne pas alourdir la base de données et de ne pas tracer les visiteurs du site). De ce fait, les nombres de visites indiqués ici doivent être pondérés: ils servent uniquement d'{indication} sur la popularité {relative} des articles et des rubriques. "); +echo "</FONT>"; +fin_boite_info(); +*/ + + + + +debut_droite(); + +if ($connect_statut != '0minirezo') { + echo "Vous n'avez pas accès à cette page."; + fin_page(); + exit; +} + + + + +////// + +if ($id_article) $page = "article$id_article"; +else $page = "tout"; + + +$query="SELECT * FROM spip_visites WHERE type = '$page' ORDER BY date"; +$result=spip_query($query); + +while ($row = mysql_fetch_array($result)) { + $date = $row['date']; + $visites = $row['visites']; + + $log[$date] = $visites; +} + + +$max = max($log); + + +if ($max>10) $maxgraph = substr(ceil(substr($max,0,2) / 10)."000000000000", 0, strlen($max)); +else $maxgraph = 10; + +$rapport = 200 / $maxgraph; + +if (count($log) < 365) $largeur = floor(365 / count($log)); +if ($largeur < 1) $largeur = 1; + + +debut_cadre_relief(); +echo "<table cellpadding=0 cellspacing=0 border=0><tr>"; + + echo "<td bgcolor='black'><img src='img_pack/rien.gif' width=1 height=1></td>"; + +// Presentation graphique +while (list($key, $value) = each($log)) { + + $hauteur = round($value * $rapport) - 1; + + echo "<td valign='bottom' width=5>"; + + if ($hauteur > 0){ + echo "<img src='img_pack/rien.gif' width=$largeur height=1 style='background-color:$couleur_foncee;'>"; + echo "<img src='img_pack/rien.gif' width=$largeur height=$hauteur style='background-color:$couleur_claire;'>"; + } + echo "<img src='img_pack/rien.gif' width=$largeur height=1 style='background-color:black;'>"; + + echo "</td>"; + + $jour_precedent = $key; +} +echo "<td bgcolor='black'><img src='img_pack/rien.gif' width=1 height=1></td>"; +echo "<td><img src='img_pack/rien.gif' width=5 height=1></td>"; +echo "<td valign='top'><font face='verdana,arial,helvetica,sans-serif' size=2>max : $max</font></td>"; +echo "</tr></table>"; + +fin_cadre_relief(); + +$query = "SELECT * FROM spip_visites_referers WHERE type = '$page' ORDER BY visites DESC LIMIT 0,100"; +$result = spip_query($query); + +echo "<p><font face='verdana,arial,helvetica,sans-serif' size=2>"; +while ($row = mysql_fetch_array($result)) { + $referer = $row['referer']; + $visites = $row['visites']; + + echo "\n<li>"; + + + if ($visites > 5) echo "<font color='red'>$visites liens : </font>"; + else if ($visites > 1) echo "$visites liens : "; + else echo "<font color='#999999'>$visites lien : </font>"; + + echo stats_show_keywords($referer, $referer); +} +echo "</font>"; + +fin_page(); + +?> + diff --git a/inc-public.php3 b/inc-public.php3 index 1f3c403e79..0b124db4ba 100644 --- a/inc-public.php3 +++ b/inc-public.php3 @@ -329,7 +329,7 @@ if ($spip_session) { // Gestion des statistiques par article // -if ($id_article AND lire_meta("activer_statistiques") != "non" AND !$flag_preserver) { +if (lire_meta("activer_statistiques") != "non" AND !$flag_preserver) { include_ecrire("inc_connect.php3"); include_local ("inc-stats.php3"); if ($db_ok) $stats = ecrire_stats(); diff --git a/inc-stats.php3 b/inc-stats.php3 index cc8d793535..6c86653528 100644 --- a/inc-stats.php3 +++ b/inc-stats.php3 @@ -6,11 +6,48 @@ if (defined("_INC_STATS")) return; define("_INC_STATS", "1"); function ecrire_stats() { + global $id_article, $id_breve, $id_rubrique, $admin_ok; + + + // Essai de fichier de log simplifie + $log_ip = $GLOBALS['REMOTE_ADDR']; + if ($id_rubrique > 0) { + $log_type = "rubrique"; + $log_id_num = $id_rubrique; + } + else if ($id_article > 0) { + $log_type = "article"; + $log_id_num = $id_article; + } + else if ($id_breve > 0) { + $log_type = "breve"; + $log_id_num = $id_breve; + } + $url_site_spip = lire_meta('adresse_site'); + $log_referer = $GLOBALS['HTTP_REFERER']; + if (eregi($url_site_spip,$log_referer)) $log_referer = ""; + + $log_date = date("Y-m-d")." 00:00:00"; + + $query = "INSERT spip_visites_temp (date, ip, type, referer) VALUES ('$log_date', '$log_ip', '$log_type$log_id_num','$log_referer')"; + spip_query($query); + + if ($admin_ok AND $id_article > 0) { + $query = "SELECT visites FROM spip_articles WHERE id_article=$id_article AND statut='publie'"; + $result = spip_query($query); + if ($row = mysql_fetch_array($result)) { + $visites = $row['visites']; + echo "[$visites visites]"; + bouton("Evolution des visites", "./ecrire/statistiques_visites.php3?id_article=$id_article"); + + } + } + + /* global $HTTP_REFERER; global $id_article; global $admin_ok; - $my_ref = $HTTP_REFERER; $my_ref = "\n".substr(md5($my_ref), 0, 15); @@ -20,7 +57,7 @@ function ecrire_stats() { if ($row = mysql_fetch_array($result)) { $visites = $row['visites']; $referers = $row['referers']; - + $visites++; if (!ereg($my_ref, $referers)) { @@ -32,10 +69,11 @@ function ecrire_stats() { } $num_ref = strlen($referers) / 16; - if ($admin_ok) { - return "<small>[$visites visites - $num_ref referers]</small>"; - } + if ($admin_ok) echo "<small>[$visites visites - $num_ref referers]</small>"; } + */ + + } -- GitLab