diff --git a/ecrire/config-fonctions.php3 b/ecrire/config-fonctions.php3 index 87d25e7a80d37dd23a68e3f6308f92b516820e1f..bb9f90d4567dc8dd1d658e75d8d21496279d6050 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 0000000000000000000000000000000000000000..f787f82cae876c57dbc831482741b097fdf2fc23 --- /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 d42f2b8af333ca56e12875e5ad83b68873f3a706..f98ed31a58adb9505a033f4c4471686030d6d117 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 5705b025bb4f67a888c174d5a1705a4998d6c190..0a18d9620c2511711d436d7a35fd9f816330a443 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 0000000000000000000000000000000000000000..1cacc24f7f34c027185dc54e6ad576c6021e3a15 --- /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 2d0279dc20ecd42551c1d25a848d60b46db5afab..250071bda7ea3eb93a2289246a4ab0e620a189df 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 f8dc4ae245248da1cb5bf11a7db57e74ec57cacc..a4af2a4f5a5da68d9c06b3b38b92386a5694b6ca 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 0000000000000000000000000000000000000000..9762e2fbdf403bf8fa23fdb9f52ddf0c0d1f322b --- /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 0000000000000000000000000000000000000000..d230a9c71dcf2564879f6ef07052982c97a6f9dd --- /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 1f3c403e7936649e689e76aa71f175385b810323..0b124db4bacd5a745b5c5b0ebbdd4cb3109751ac 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 cc8d793535872e28c81558174b3b8a634f028917..6c8665352871e74b6edfe006329ab5d82659b01d 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>"; } + */ + + }