X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fexec%2Fstatistiques_visites.php;fp=www%2Fecrire%2Fexec%2Fstatistiques_visites.php;h=a85060d2c87ed892d506132b9dac4550328fb1f7;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/exec/statistiques_visites.php b/www/ecrire/exec/statistiques_visites.php new file mode 100644 index 0000000..a85060d --- /dev/null +++ b/www/ecrire/exec/statistiques_visites.php @@ -0,0 +1,188 @@ +".aide("confstat")."",'', false); +// barre_onglets("statistiques", "evolution"); + if ($titre) echo gros_titre($titre,'', false); + + echo debut_gauche('', true); + echo "
"; + echo "
"; + echo typo(_T('info_afficher_visites')); + echo ""; + echo "
"; + echo "
"; + + $classement = array(); + $liste = 0; + echo aff_statistique_visites_popularite($serveur, $id_article, $classement, $liste); + + // Par visites depuis le debut + $result = aff_statistique_visites_par_visites($serveur, $id_article, $classement); + + if ($result OR $id_article) + echo creer_colonne_droite('', true); + + if ($id_article) { + echo bloc_des_raccourcis(icone_horizontale(_T('icone_retour_article'), generer_url_ecrire("articles","id_article=$id_article"), "article-24.gif","rien.gif", false)); + } + echo $result; + + echo debut_droite('', true); + + if ($id_article) { + $table = "spip_visites_articles"; + $table_ref = "spip_referers_articles"; + $where = "id_article=$id_article"; + + } else { + $table = "spip_visites"; + $table_ref = "spip_referers"; + $where = ""; + } + + $order = "date"; + + $where2 = $duree ? "$order > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).",INTERVAL $duree $type)": ''; + if ($where) $where2 = $where2 ? "$where2 AND $where" : $where; + + // sur certains SQL, la division produit un entier tronque a la valeur inferieure + // on ne peut donc faire un CEIL, il faut faire un FLOOR + $log = statistiques_collecte_date('visites', "(FLOOR((UNIX_TIMESTAMP($order)+$interval-1) / $interval) * $interval)", $table, $where2, $serveur); + + if ($log) + $res = statistiques_tous($log, $id_article, $table, $where, $order, $serveur, $duree, $interval, $total_absolu, $val_popularite, $classement, $liste); + + $mois = statistiques_collecte_date("SUM(visites)", + "DATE_FORMAT($order,'%Y%m')", + $table, + "$order > DATE_SUB(NOW(),INTERVAL 2700 DAY)" + . ($where ? " AND $where" : ''), + $serveur); + + if (count($mois)>1) { + $res[] = "
" + . _T('info_visites_par_mois') + . "" + . statistiques_par_mois($mois, ''); + } + echo cadre_stat($res, $table, $id_article); + + if ($id_article) { + $signatures = charger_fonction('signatures', 'statistiques'); + echo $signatures($duree, $interval, $type, $id_article, $serveur); + /* + Il faudra optimiser les requetes de ces stats c'est vraiment trop horrible : + plusieurs secondes d'attente sur un site comme contrib. + par ailleurs, l'affichage presente des defauts : + cf http://trac.rezo.net/trac/spip/ticket/1598 + $forums = charger_fonction('forums', 'statistiques'); + echo $forums($duree, $interval, $type, $id_article, $serveur); + */ + } + + + $referenceurs = charger_fonction('referenceurs', 'inc'); + $res = $referenceurs($id_article, "visites", $table_ref, $where, '', $limit); + + if ($res) { + + // Le lien pour en afficher "plus" + $args = ($id_article?"id_article=$id_article&" : '') . "limit=" . strval($limit+200); + $n = count($res); + $plus = generer_url_ecrire('statistiques_visites', $args); + if ($plus) { + $plus = "
+++
"; + } + $titre = _T("onglet_origine_visites") + . " ($n " + . ($n == 1 ? _T('info_site') : _T('info_sites')) + . ")"; + echo '
', gros_titre($titre,'', false); + echo "

"; + echo ""; + echo $plus; + echo "
"; + } + + echo fin_gauche(), fin_page(); +} +?>