Skip to content
Extraits de code Groupes Projets
Valider d258723e rédigé par esj's avatar esj
Parcourir les fichiers

Le clonage de la présentation des statistiques en celui des signatures ayant...

Le clonage de la présentation des statistiques en celui des signatures ayant inclus le lien CSV par erreur, autant aller justqu'au bout.

Les productions de fichiers CSV sont à présent assurées par des squelettes accessibles seulement depuis l'espace privé, et rangé dans {{{prive/transmettre}}}.

Il y en a un pour les statistiques générales des visites, un pour celles pour d'un article précis (résultats identiques à ce qu'il y avait avant), mais aussi un pour les signatures d'une petition.
Pour ce dernier squelette, utilisation de la jointure explicite pour obtenir les signatures sur toutes les traduction de l'article.
parent 62a4a9a5
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -283,6 +283,9 @@ dist/prive/infos/breve_fonctions.php -text ...@@ -283,6 +283,9 @@ dist/prive/infos/breve_fonctions.php -text
dist/prive/infos/rubrique.html -text dist/prive/infos/rubrique.html -text
dist/prive/infos/site.html -text dist/prive/infos/site.html -text
dist/prive/infos/site_fonctions.php -text dist/prive/infos/site_fonctions.php -text
dist/prive/transmettre/signatures_article.html -text
dist/prive/transmettre/statistiques.html -text
dist/prive/transmettre/statistiques_article.html -text
dist/puce.gif -text dist/puce.gif -text
dist/puce_prive.gif -text dist/puce_prive.gif -text
dist/puce_prive_rtl.gif -text dist/puce_prive_rtl.gif -text
......
#HTTP_HEADER{Content-Type: text/csv; charset=#CHARSET}
#HTTP_HEADER{Content-Disposition: attachment; filename=signature#ID_ARTICLE.csv}
<BOUCLE0(ARTICLES){id_article}><B1>#TOTAL_BOUCLE <:info_signatures:> <:info_pour:> #TITRE;
<:nom:>;<:email:>
<BOUCLE1(SIGNATURES){id_article}{par nom_email}>#NOM_EMAIL;#AD_EMAIL
</BOUCLE1></BOUCLE0>
#HTTP_HEADER{Content-Type: text/csv; charset=#CHARSET}
#HTTP_HEADER{Content-Disposition: attachment; filename=stats-#NOM_SITE_SPIP.csv}
<BOUCLE1(VISITES){par date}>#DATE;#VISITES
</BOUCLE1>
#HTTP_HEADER{Content-Type: text/csv; charset=#CHARSET}
#HTTP_HEADER{Content-Disposition: attachment; filename=stats-#NOM_SITE_SPIP-#ID_ARTICLE.csv}
<BOUCLE1(VISITES_ARTICLES){id_article}{par date}>#DATE;#VISITES
</BOUCLE1>
...@@ -45,23 +45,6 @@ function http_img_rien($width, $height, $class='', $title='') { ...@@ -45,23 +45,6 @@ function http_img_rien($width, $height, $class='', $title='') {
. (!$title ? '' : (" title=\"$title\""))); . (!$title ? '' : (" title=\"$title\"")));
} }
// pondre les stats sous forme d'un fichier csv tres basique
// http://doc.spip.org/@statistiques_csv
function statistiques_csv($id) {
$filename = 'stats_'.($id ? 'article'.$id : 'total').'.csv';
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename='.$filename);
if ($id)
$s = sql_select("date, visites", "spip_visites_articles", "id_article=$id", "", "date");
else
$s = sql_select("date, visites", "spip_visites", "", "", "date");
while ($t = sql_fetch($s)) {
echo $t['date'].";".$t['visites']."\n";
}
}
// http://doc.spip.org/@exec_statistiques_visites_dist // http://doc.spip.org/@exec_statistiques_visites_dist
function exec_statistiques_visites_dist() function exec_statistiques_visites_dist()
{ {
...@@ -74,12 +57,20 @@ function exec_statistiques_visites_dist() ...@@ -74,12 +57,20 @@ function exec_statistiques_visites_dist()
if ($limit == 0) $limit = 100; if ($limit == 0) $limit = 100;
if (!autoriser('voirstats', $id_article ? 'article':'', $id_article)) { if (!autoriser('voirstats', $id_article ? 'article':'', $id_article)) {
include_spip('inc/minipres'); include_spip('inc/minipres');
echo minipres(); echo minipres();
} else { } else {
if (_request('format') == 'csv') if (_request('format') != 'csv')
statistiques_csv($id_article); exec_statistiques_visites_args($id_article, $aff_jours, $limit);
else exec_statistiques_visites_args($id_article, $aff_jours, $limit); else {
include_spip('public/assembler');
$fond = 'prive/transmettre/'
. (_request('table')=='visites' ? 'statistiques' : 'signatures');
if (!$id_article)
$page = envoyer_page($fond, array());
else envoyer_page($fond . "_article",
array('id_article' => $id_article));
}
} }
} }
...@@ -226,7 +217,6 @@ function exec_statistiques_visites_args($id_article, $aff_jours, $limit) ...@@ -226,7 +217,6 @@ function exec_statistiques_visites_args($id_article, $aff_jours, $limit)
echo debut_droite('', true); echo debut_droite('', true);
$mode = statistiques_mode(self());
if ($id_article) { if ($id_article) {
$table = "spip_visites_articles"; $table = "spip_visites_articles";
$table_ref = "spip_referers_articles"; $table_ref = "spip_referers_articles";
...@@ -256,11 +246,11 @@ function exec_statistiques_visites_args($id_article, $aff_jours, $limit) ...@@ -256,11 +246,11 @@ function exec_statistiques_visites_args($id_article, $aff_jours, $limit)
echo statistiques_par_mois(sql_select("FROM_UNIXTIME(UNIX_TIMESTAMP(date),'%Y-%m') AS date_unix, SUM(visites) AS total_visites", $table, "$where AND date > DATE_SUB(NOW(),INTERVAL 2700 DAY)", 'date_unix', "date"), $last); echo statistiques_par_mois(sql_select("FROM_UNIXTIME(UNIX_TIMESTAMP(date),'%Y-%m') AS date_unix, SUM(visites) AS total_visites", $table, "$where AND date > DATE_SUB(NOW(),INTERVAL 2700 DAY)", 'date_unix', "date"), $last);
} }
echo fin_cadre_relief(true), $mode; echo fin_cadre_relief(true), statistiques_mode('visites');
} }
if ($id_article AND $n = sql_countsel('spip_signatures', "id_article=$id_article")) { if ($id_article AND $n = sql_countsel('spip_signatures', "id_article=$id_article")) {
echo statistiques_signatures($aff_jours, $id_article, $mode, $n); echo statistiques_signatures($aff_jours, $id_article, statistiques_mode('signatures'), $n);
} }
$r = sql_select("referer, referer_md5, visites AS vis", $table_ref, $where, "", "vis DESC", $limit); $r = sql_select("referer, referer_md5, visites AS vis", $table_ref, $where, "", "vis DESC", $limit);
...@@ -439,7 +429,7 @@ function statistiques_tous($log, $date_premier, $last, $total_absolu, $val_popul ...@@ -439,7 +429,7 @@ function statistiques_tous($log, $date_premier, $last, $total_absolu, $val_popul
// Le bouton pour CSV et pour passer de svg a htm // Le bouton pour CSV et pour passer de svg a htm
// http://doc.spip.org/@statistiques_mode // http://doc.spip.org/@statistiques_mode
function statistiques_mode($lui) function statistiques_mode($table)
{ {
if (flag_svg()) { if (flag_svg()) {
$lien = 'non'; $alter = 'HTML'; $lien = 'non'; $alter = 'HTML';
...@@ -447,10 +437,15 @@ function statistiques_mode($lui) ...@@ -447,10 +437,15 @@ function statistiques_mode($lui)
$lien = 'oui'; $alter = 'SVG'; $lien = 'oui'; $alter = 'SVG';
} }
$lui = self();
$csv = parametre_url(parametre_url($lui, 'table', $table), 'format', 'csv');
return "\n<div style='text-align:".$GLOBALS['spip_lang_right'] . ";' class='verdana1 spip_x-small'>" return "\n<div style='text-align:".$GLOBALS['spip_lang_right'] . ";' class='verdana1 spip_x-small'>"
. "<a href='". parametre_url($lui, 'var_svg', $lien)."'>$alter</a>" . "<a href='". parametre_url($lui, 'var_svg', $lien)."'>"
. " | <a href='" . $alter
. parametre_url($lui, 'format', 'csv')."'>CSV</a>" . "</a> | <a href='"
. $csv
. "'>CSV</a>"
. "</div>\n"; . "</div>\n";
} }
......
...@@ -110,6 +110,18 @@ function public_assembler_dist($fond, $connect='') { ...@@ -110,6 +110,18 @@ function public_assembler_dist($fond, $connect='') {
return assembler_page ($fond, $connect); return assembler_page ($fond, $connect);
} }
// fonction pour l'envoi de fichier
function envoyer_page($fond, $contexte)
{
$page = inclure_page($fond, $contexte);
if (!is_array($page['entetes'])) {
include_spip('inc/headers');
redirige_par_entete(generer_url_public('404'));
}
envoyer_entetes($page['entetes']);
echo $page['texte'];
}
// Envoyer les entetes, en retenant ceux qui sont a usage interne // Envoyer les entetes, en retenant ceux qui sont a usage interne
// et demarrent par X-Spip-... // et demarrent par X-Spip-...
function envoyer_entetes($entetes) { function envoyer_entetes($entetes) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter