Browse Source

eviter de passer directement les parametres de la query-string en variable dans la detection des keywords des referrers

(amelioration de http://zone.spip.org/trac/spip-zone/changeset/55295)
svn/root/tags/plugins/statistiques/0.4.2
cy_altern@yahoo.fr 11 years ago
parent
commit
20aff53a47
  1. 2
      engines-list.txt
  2. 18
      inc/referenceurs.php

2
engines-list.txt

@ -104,7 +104,7 @@ www\.excite\.fr
(.*)recherchet?\.aol\.fr
[AOLsearch]
query=
(query|q)=
(.*)search\.aol\.(.*)
[AllTheWeb]

18
inc/referenceurs.php

@ -70,14 +70,8 @@ function stats_show_keywords($kw_referer){
else
$scheme = $query = $host = $path = '';
// affecter directement les variables depuis la query-string, sans remplacer celles existantes
foreach (explode('&', $query) as $chaine) {
if (count($Tchaine = explode('=', $chaine)) > 1) {
$p = str_replace(array('[', ']'), '', $Tchaine[0]);
if (!isset($$p))
$$p = $Tchaine[1];
}
}
// construire un array des variables directement depuis la query-string
parse_str($query, $Tquery);
$keywords = '';
$found = false;
@ -98,9 +92,9 @@ function stats_show_keywords($kw_referer){
if (strpos($arr_engines[$cnt][1], '=')!==false){
// Fonctionnement simple: la variable existe
// Fonctionnement simple: la variable existe dans l'array
$v = str_replace('=', '', $arr_engines[$cnt][1]);
$keywords = isset($$v) ? $$v : "";
$keywords = isset($Tquery[$v]) ? $Tquery[$v]: "";
// Si on a defini le nom de la variable en expression reguliere, chercher la bonne variable
if (!strlen($keywords)>0){
@ -112,10 +106,10 @@ function stats_show_keywords($kw_referer){
$keywords = "";
}
if ((($kw_referer_host=="Google")
if (($kw_referer_host=="Google")
|| ($kw_referer_host=="AOL" && strpos($query, 'enc=iso')===false)
|| ($kw_referer_host=="MSN")
)){
){
include_spip('inc/charsets');
if (!isset($ie) OR !$cset = $ie) $cset = 'utf-8';
$keywords = importer_charset($keywords, $cset);

Loading…
Cancel
Save