From f66f278edd15e3a90bdcbbef798ff84cf4aba8f7 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Fri, 21 Sep 2007 22:27:21 +0000
Subject: [PATCH] amelioration de la presentation des referers (superbe patch
 de realet, #1085)

---
 ecrire/exec/statistiques_referers.php |  7 +++++--
 ecrire/inc/statistiques.php           | 13 +++++++++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/ecrire/exec/statistiques_referers.php b/ecrire/exec/statistiques_referers.php
index a5c6aeb670..1f28e4d90a 100644
--- a/ecrire/exec/statistiques_referers.php
+++ b/ecrire/exec/statistiques_referers.php
@@ -75,7 +75,10 @@ echo barre_onglets("stat_referers", $jour);
 
 // afficher quels referers ?
 
- $result = spip_query("SELECT referer, visites_$jour AS vis FROM spip_referers WHERE visites_$jour>0 ORDER BY vis DESC LIMIT $limit");
+ $str_date = (($jour=='jour')?"DATE_FORMAT(NOW(),'%Y-%m-%d')":"DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-%d'), INTERVAL 1 DAY)");
+
+ $result = spip_query("SELECT J1.referer, visites_$jour AS vis, J2.id_article, J3.titre FROM spip_referers as J1 LEFT JOIN spip_referers_articles AS J2 ON J1.referer_md5 = J2.referer_md5 LEFT JOIN spip_articles AS J3 ON J2.id_article = J3.id_article WHERE visites_$jour>0 AND (J2.maj>=$str_date OR J2.maj IS NULL) ORDER BY vis DESC, id_article LIMIT $limit");
+
 
  echo "<br /><div style='font-size:small;' class='verdana1'>";
  echo aff_referers ($result, $limit, generer_url_ecrire('statistiques_referers', ("jour=$jour&limit=" . strval($limit+200))));
@@ -85,4 +88,4 @@ echo barre_onglets("stat_referers", $jour);
  echo fin_gauche(), fin_page();
 }
 
-?>
+?>
\ No newline at end of file
diff --git a/ecrire/inc/statistiques.php b/ecrire/inc/statistiques.php
index c6925ae15d..1bd5eb85c5 100644
--- a/ecrire/inc/statistiques.php
+++ b/ecrire/inc/statistiques.php
@@ -137,6 +137,9 @@ function aff_referers ($result, $limit, $plus) {
 	while ($row = sql_fetch($result)) {
 		$referer = interdire_scripts($row['referer']);
 		$visites = $row['vis'];
+		$id_article = $row['id_article'];
+		$titre_article = typo(interdire_scripts($row['titre']));
+		
 		$tmp = "";
 		
 		$buff = stats_show_keywords($referer, $referer);
@@ -162,12 +165,15 @@ function aff_referers ($result, $limit, $plus) {
 			}
 
 			if ($tmp)
-				$lesreferers[$numero][] = "<a href='".quote_amp($referer)."'>".quote_amp(urldecode($tmp))."</a>" . (($visites > 1)?" ($visites)":"");
+				$lesreferers[$numero][] = "<a href='".quote_amp($referer)."'><b>".quote_amp(urldecode($tmp))."</b></a>" . (($visites > 1)?" ($visites)":"") . (($id_article > 0)?" &rarr; <a href='".generer_url_article($id_article)."'><i>$titre_article</i></a>":"");
 			else
 				$lesliensracine[$numero] += $visites;
 			$lesdomaines[$numero] = $buff["hostname"];
+			$lesreferes[$numero] = $id_article;
+			$lesreferestitre[$numero] = $titre_article;
 			$lesurls[$numero] = $buff["host"];
 			$lesliens[$numero] = $referer;
+			
 		}
 	}
 	
@@ -177,6 +183,9 @@ function aff_referers ($result, $limit, $plus) {
 		$aff = '';
 		for (reset($nbvisites); $numero = key($nbvisites); next($nbvisites)) {
 			$dom =  $lesdomaines[$numero];
+			$id_article = $lesreferes[$numero];
+			$titre_article = $lesreferestitre[$numero];
+			
 			if (!$dom) next;
 
 			$visites = pos($nbvisites);
@@ -215,7 +224,7 @@ function aff_referers ($result, $limit, $plus) {
 						if (!strpos($lien, '</a>')) $lien .= '</a>';
 					} else
 						$lien = "<a href='http://".$dom."'>".$dom."</a>";
-					$aff .= "<b>".quote_amp($lien)."</b>";
+					$aff .= "<b>".quote_amp($lien)."</b>" . (($id_article > 0)?" &rarr; <a href='".generer_url_article($id_article)."'><i>$titre_article</i></a>":"");
 				}
 			}
 			$aff .= "</li>\n";
-- 
GitLab