X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Fstatistiques%2Finc%2Fstats_referers_to_array.php;fp=www%2Fplugins-dist%2Fstatistiques%2Finc%2Fstats_referers_to_array.php;h=9f60f3ac8f049f4c25c17f66b9e42a617f3716bb;hb=a33c2ba9d919664b3bb0f565f8e9a8b9d8530cdb;hp=0000000000000000000000000000000000000000;hpb=8945248b3d948385798d9aa355c70e7089aca2b3;p=lhc%2Fweb%2Fclavette_www.git diff --git a/www/plugins-dist/statistiques/inc/stats_referers_to_array.php b/www/plugins-dist/statistiques/inc/stats_referers_to_array.php new file mode 100644 index 0000000..9f60f3a --- /dev/null +++ b/www/plugins-dist/statistiques/inc/stats_referers_to_array.php @@ -0,0 +1,120 @@ +0"; + } + //$res = $referenceurs (0, "SUM(visites_$jour)", 'spip_referers', "visites_$jour>0", "referer", $limit); + + if ($id_article) { + $table = "spip_referers_articles"; + $where[] = "id_article=".intval($id_article); + } + + $where = implode(" AND ",$where); + $limit = $limit?"0,".intval($limit):''; + + $result = sql_select("referer_md5, referer, $visites AS vis", $table, $where, '', "maj DESC", $limit,'',$serveur); + + $referers = array(); + $trivisites = array(); // pour le tri + while ($row = sql_fetch($result,$serveur)) { + $referer = interdire_scripts($row['referer']); + $buff = stats_show_keywords($referer, $referer); + + if ($buff["host"]) { + $refhost = $buff["hostname"]; + $visites = $row['vis']; + $host = $buff["scheme"]."://".$buff["host"]; + + $referers[$refhost]['referer_md5'] = $row['referer_md5']; + + if (!isset($referers[$refhost]['liens'][$referer])) + $referers[$refhost]['liens'][$referer] = 0; + if (!isset($referers[$refhost]['hosts'][$host])) + $referers[$refhost]['hosts'][$host] = 0; + + if (!isset($referers[$refhost]['visites'])) + $referers[$refhost]['visites'] = 0; + if (!isset($referers[$refhost]['visites_racine'])) + $referers[$refhost]['visites_racine'] = 0; + if (!isset($referers[$refhost]['referers'])) + $referers[$refhost]['referers'] = array(); + + $referers[$refhost]['hosts'][$host]++; + $referers[$refhost]['liens'][$referer]++ ; + $referers[$refhost]['visites'] += $visites; + $trivisites[$refhost] = $referers[$refhost]['visites']; + + $tmp = ""; + $set = array( + 'referer'=>$referer, + 'visites'=>$visites, + 'referes'=>$id_article?'':referes($row['referer_md5']) + ); + if (isset($buff["keywords"]) + AND $c = $buff["keywords"]) { + if (!isset($referers[$refhost]['keywords'][$c])) { + $referers[$refhost]['keywords'][$c] = true; + $set['keywords'] = $c; + } + } + else { + $tmp = $buff["path"]; + if ($buff["query"]) + $tmp .= "?".$buff['query']; + if (strlen($tmp)) + $set['path'] = "/$tmp"; + } + if (isset($set['path']) OR isset($set['keywords'])) + $referers[$refhost]['referers'][] = $set; + else + $referers[$refhost]['visites_racine'] += $visites; + } + } + + // trier les liens pour trouver le principal + foreach($referers as $k=>$r){ + arsort($referers[$k]['liens']); + $referers[$k]['liens'] = array_keys($referers[$k]['liens']); + arsort($referers[$k]['hosts']); + $referers[$k]['hosts'] = array_keys($referers[$k]['hosts']); + $referers[$k]['url'] = reset($referers[$k]['hosts']); + } + + if (count($trivisites)){ + array_multisort($trivisites, SORT_DESC,$referers); + } + + return $referers; +} + + +?> \ No newline at end of file