Browse Source

Des scories dans la production des CSV de statistiques. Tant qu'à faire, on achève le passage en squelette de cette production en ajoutant un squelette d'aigiuillage et le contrôle d'autorisation dans les squelettes, ça permettra de rajouter des CSV sur tout ce qu'on veut très facilement.

3.0
Committo,Ergo:sum 14 years ago
parent
commit
42b36a7ed8
  1. 1
      .gitattributes
  2. 28
      ecrire/exec/statistiques_visites.php
  3. 43
      ecrire/inc/statistiques.php
  4. 1
      prive/transmettre.html
  5. 13
      prive/transmettre/forum_article.html
  6. 16
      prive/transmettre/signatures_article.html
  7. 14
      prive/transmettre/statistiques.html
  8. 14
      prive/transmettre/statistiques_article.html

1
.gitattributes vendored

@ -796,6 +796,7 @@ prive/style_prive_ie.html -text
prive/style_prive_plugins.html -text
prive/style_prive_plugins_fonctions.php -text
prive/style_vieilles_def.html -text
prive/transmettre.html -text
prive/transmettre/forum_article.html -text
prive/transmettre/signatures_article.html -text
prive/transmettre/statistiques.html -text

28
ecrire/exec/statistiques_visites.php

@ -37,32 +37,10 @@ function exec_statistiques_visites_dist()
if (!autoriser('voirstats', $id_article ? 'article':'', $id_article)) {
include_spip('inc/minipres');
echo minipres();
} else {
if (_request('format') != 'csv')
exec_statistiques_visites_args($id_article, $duree, $interval, $type, $limit);
else {
$t = str_replace('spip_', '', _request('table'));
$fond = 'prive/transmettre/'
. (strstr($t, 'visites') ? 'statistiques' : $t);
$contexte = array();
if (!$id_article) {
$fond .= "_article";
$contexte['id_article'] = $id_article;
}
$parametrer = charger_fonction('parametrer', 'public');
$page = $parametrer($fond, $contexte);
if (!is_array($page['entetes'])) {
include_spip('inc/headers');
redirige_par_entete(generer_url_public('404'));
} else {
foreach ($page['entetes'] as $k => $v)
header("$k: $v");
echo $page['texte'];
}
}
}
} else exec_statistiques_visites_args($id_article, $duree, $interval, $type, $limit);
}
// http://doc.spip.org/@exec_statistiques_visites_args
function exec_statistiques_visites_args($id_article, $duree, $interval, $type, $limit,$serveur='')
{
@ -147,7 +125,7 @@ function exec_statistiques_visites_args($id_article, $duree, $interval, $type, $
$log = statistiques_collecte_date('visites', "(CEIL(UNIX_TIMESTAMP($order) / $interval) * $interval)", $table, $where2, $serveur);
if ($log)
echo cadre_stat(statistiques_tous($log, $id_article, $table, $where, $order, $serveur, $duree, $interval, $total_absolu, $val_popularite, $classement, $liste), $table);
echo cadre_stat(statistiques_tous($log, $id_article, $table, $where, $order, $serveur, $duree, $interval, $total_absolu, $val_popularite, $classement, $liste), $table, $id_article);
$mois = statistiques_collecte_date("SUM(visites)",
"FROM_UNIXTIME(UNIX_TIMESTAMP($order),'%Y-%m')",

43
ecrire/inc/statistiques.php

@ -138,13 +138,13 @@ function maxgraph($max) {
}
// http://doc.spip.org/@cadre_stat
function cadre_stat($stats, $table)
function cadre_stat($stats, $table, $id_article)
{
if (!$stats) return '';
return debut_cadre_relief("statistiques-24.gif", true)
. join('', $stats)
. join('', $stats)
. fin_cadre_relief(true)
. statistiques_mode($table);
. statistiques_mode($table, $id_article);
}
// http://doc.spip.org/@statistiques_collecte_date
@ -467,7 +467,7 @@ function statistiques_nom_des_mois($date_debut, $date_today, $largeur, $pas, $ag
}
// http://doc.spip.org/@statistiques_par_mois
function statistiques_par_mois($entrees, $script, $table=''){
function statistiques_par_mois($entrees, $script){
$maxgraph = maxgraph(max($entrees));
$rapport = 200/$maxgraph;
@ -545,9 +545,7 @@ function statistiques_par_mois($entrees, $script, $table=''){
. "\n<td>" . http_img_rien(5, 1) ."</td>"
. "\n<td valign='top'>"
. statistiques_echelle($maxgraph)
. "</td></tr></table>"
. (!$table ? '' : statistiques_mode($table))
;
. "</td></tr></table>";
}
// http://doc.spip.org/@statistiques_echelle
@ -575,14 +573,14 @@ function statistiques_signatures_dist($duree, $interval, $type, $id_article, $se
$order = 'date_time';
if ($duree)
$where .= "$order > DATE_SUB(NOW(),INTERVAL $duree $type)";
$where .= " AND $order > DATE_SUB(NOW(),INTERVAL $duree $type)";
$log = statistiques_collecte_date('COUNT(*)', "(FLOOR(UNIX_TIMESTAMP($order) / $interval) * $interval)", 'spip_signatures', $where, $serveur);
$script = generer_url_ecrire('controle_petition', "id_article=$id_article");
if (count($log) > 1) {
$res = statistiques_tous($log, $id_article, "spip_signatures", "id_article=$id_article", "date_time", $serveur, $duree, $interval, $total, 0, '', array(), $script);
$res = gros_titre(_T('titre_page_statistiques_signatures_jour'),'', false) . cadre_stat($res, 'spip_signatures');
$res = gros_titre(_T('titre_page_statistiques_signatures_jour'),'', false) . cadre_stat($res, 'spip_signatures', $id_article);
} else $res = '';
$mois = statistiques_collecte_date( "COUNT(*)",
@ -597,7 +595,9 @@ function statistiques_signatures_dist($duree, $interval, $type, $id_article, $se
. (!$mois ? '' : (
"<br />"
. gros_titre(_T('titre_page_statistiques_signatures_mois'),'', false)
. statistiques_par_mois($mois, $script, $res ? '' : "spip_signatures")));
. statistiques_par_mois($mois, $script)))
. ($res ? '' : statistiques_mode("spip_signatures", $id_article))
;
}
// http://doc.spip.org/@statistiques_forums_dist
@ -628,20 +628,25 @@ function statistiques_forums_dist($duree, $interval, $type, $id_article, $serveu
return "<br />"
. gros_titre(_T('titre_page_statistiques_messages_forum'),'', false)
. cadre_stat($jour, 'spip_forum');
. cadre_stat($jour, 'spip_forum', $id_article);
}
// Le bouton pour CSV
// http://doc.spip.org/@statistiques_mode
function statistiques_mode($table)
function statistiques_mode($table, $id=0)
{
$csv = parametre_url(parametre_url(self(), 'table', $table), 'format', 'csv');
return "\n<div style='text-align:".$GLOBALS['spip_lang_left'] . ";' class='verdana1 spip_x-small'>"
. "<a href='"
. $csv
. "'>CSV</a>"
. "</div>\n";
global $spip_lang_left;
$t = str_replace('spip_', '', $table);
$fond = (strstr($t, 'visites') ? 'statistiques' : $t);
$args = array();
if ($id) {
$fond .= "_article";
$args['id_article'] = $id;
}
include_spip('inc/acces');
$args = param_low_sec($fond, $args, '', 'transmettre');
$url = generer_url_public('transmettre', $args);
return "<a style='float: $spip_lang_left;' href='$url'>CSV</a>";
}
?>

1
prive/transmettre.html

@ -0,0 +1 @@
#HTTP_HEADER{Content-Type: text/csv; charset=#CHARSET}#HTTP_HEADER{Content-Disposition: attachment; filename=#OP#ID_ARTICLE.csv}[(#INCLURE*{fond=prive/transmettre/#ENV{op}}{env})]

13
prive/transmettre/forum_article.html

@ -1,6 +1,11 @@
#HTTP_HEADER{Content-Type: text/csv; charset=#CHARSET}
#HTTP_HEADER{Content-Disposition: attachment; filename=forum#ID_ARTICLE.csv}
<BOUCLE0(ARTICLES){id_article}><B1>#TOTAL_BOUCLE <:messages:> [(#TITRE|supprimer_numero|textebrut|filtrer_entites)];
<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
?><BOUCLE2(ARTICLES){id_article}><B1>#TOTAL_BOUCLE <:messages:> [(#TITRE|supprimer_numero|textebrut|filtrer_entites)];
<:date:>;<:titre:>;<:nom:>
<BOUCLE1(FORUMS){id_article}{!par date_heure}{statut!=''}>[(#DATE_HEURE|affdate_heure|textebrut|filtrer_entites)];#TITRE;#NOM
</BOUCLE1></BOUCLE0>
</BOUCLE1></BOUCLE2>
<?php
} else {
include_spip('inc/minipres');
echo minipres();
}?></BOUCLE0>

16
prive/transmettre/signatures_article.html

@ -1,9 +1,11 @@
#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;
<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
?><BOUCLE2(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>
</BOUCLE1></BOUCLE2>
<?php
} else {
include_spip('inc/minipres');
echo '#ENV{id}', minipres();
}?></BOUCLE0>

14
prive/transmettre/statistiques.html

@ -1,7 +1,9 @@
#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
<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
?><BOUCLE1(VISITES){par date}>#DATE;#VISITES
</BOUCLE1>
<?php
} else {
include_spip('inc/minipres');
echo minipres();
}?></BOUCLE0>

14
prive/transmettre/statistiques_article.html

@ -1,7 +1,9 @@
#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
<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
?><BOUCLE1(VISITES_ARTICLES){id_article ?}{par date}>#DATE;#VISITES
</BOUCLE1>
<?php
} else {
include_spip('inc/minipres');
echo minipres();
}?></BOUCLE0>

Loading…
Cancel
Save