コード例 #1
0
ファイル: referenceurs.php プロジェクト: rhertzog/lcs
function referers_group($nbvisites, $id_article, $lesliensracine, $lesreferermd5, $lesreferers, $lesurls)
{
	global $spip_lang_right, $source_vignettes;
	$vign = ((strlen($source_vignettes) > 0) && 
		 $GLOBALS['meta']["activer_captures_referers"]!='non');
	$aff = array();
	foreach($nbvisites as $numero => $visites) {
		if (!$numero) next;
		$referermd5 = $lesreferermd5[$numero];
		$bouton = $ret = "";

		if ($vign)
			$ret = "\n<a href=\"http://".$lesurls[$numero]."\"><img src=\"$source_vignettes".rawurlencode($lesurls[$numero])."\"\nstyle=\"float: $spip_lang_right; margin-bottom: 3px; margin-left: 3px;\" alt='' /></a>";

		if ($visites > 5) $bouton .= "<span class='visites visites3'>$visites "._T('info_visites')."</span> ";
		else if ($visites > 1) $bouton .= "<span class='visites visites2'>$visites "._T('info_visites')."</span> ";
		else $bouton .= "<span class='visites visites1'>$visites "._T('info_visite')."</span> ";

		if ($numero == "(email)") {
			$ret .=  $bouton . "<b>".$numero."</b>";
		} else {
			$n = count($lesreferers[$numero]);
			if (($n > 1) || ($n > 0 && substr(supprimer_tags($lesreferers[$numero][0]),0,1) != '/')) {
				$rac = $lesliensracine[$numero];
				$bouton .= "<a href=\"http://".attribut_html($lesurls[$numero])."\" style='font-weight: bold;'>".$numero."</a>"
				  . (!$rac ? '': (" <span class='spip_x-small'>(" . $rac .")</span>"));
				 $ret .= bouton_block_depliable($bouton,false)
				  . debut_block_depliable(false)
				  . "\n<ul><li>"
				  . join ("</li><li>",$lesreferers[$numero])
				  . "</li></ul>"
				  . fin_block();
			} else {
				$ret .= $bouton;
				$lien = $n ? $lesreferers[$numero][0] : '';
				if (preg_match(",^(<a [^>]+>)([^ ]*)( \([0-9]+\))?,i", $lien, $regs)) {
					$lien = quote_amp($regs[1]).$numero.$regs[2];
					if (!strpos($lien, '</a>')) $lien .= '</a>';
				} else
					$lien = "<a href=\"http://".attribut_html($numero)."\">".$numero."</a>";
				$ret .= "<b>".quote_amp($lien)."</b>"
				  . ($id_article ? '' : referes($referermd5));
			}
		}
		$aff[]= $ret;
	}
	return $aff;
}
コード例 #2
0
function inc_stats_referers_to_array_dist($limit, $jour, $id_article, $options = array())
{
    $visites = 'visites';
    $table = "spip_referers";
    $where = array();
    $serveur = '';
    if (in_array($jour, array('jour', 'veille'))) {
        $visites .= "_{$jour}";
        $where[] = "{$visites}>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;
}