Browse Source

On permet d'utiliser statistiques.json.html pour d'autres exports éventuels que les visites. (cherchera `inc_stats_{export}_to_array()`)

pull/4/head
Matthieu Marcillaud 8 months ago
parent
commit
865cbb0bca
  1. 24
      prive/squelettes/inclure/stats-visites-jours.html
  2. 9
      prive/squelettes/inclure/stats-visites-jours_fonctions.php
  3. 9
      statistiques.csv.html
  4. 2
      statistiques.json.html
  5. 4
      statistiques.json_fonctions.php

24
prive/squelettes/inclure/stats-visites-jours.html

@ -6,36 +6,36 @@
<a class="bouton[ (#ENV{graph}|non|ou{#ENV{graph}|=={90-days}})principal]" href="#"
data-graph="90-days"
data-title="<:statistiques:visites_journalieres|attribut_html:>"
data-json="[(#VAL{json}|statistiques_url_data{jour,90})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{jour,90})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{jour,90})]"
data-json="[(#VAL{json}|statistiques_url_data{visites,jour,90})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{visites,jour,90})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{visites,jour,90})]"
onclick="spip_d3_statistiques_load_json(this, '#statistiques_visites'); return false;">
3 mois
</a>
<a class="bouton[ (#ENV{graph}|=={730-days}|oui)principal]" href="#"
data-graph="730-days"
data-title="<:statistiques:visites_journalieres|attribut_html:>"
data-json="[(#VAL{json}|statistiques_url_data{jour,730})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{jour,730})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{jour,730})]"
data-json="[(#VAL{json}|statistiques_url_data{visites,jour,730})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{visites,jour,730})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{visites,jour,730})]"
onclick="spip_d3_statistiques_load_json(this, '#statistiques_visites'); return false;">
2 ans
</a>
<a class="bouton[ (#ENV{graph}|=={60-months}|oui)principal]" href="#"
data-graph="60-months"
data-title="<:statistiques:visites_mensuelles|attribut_html:>"
data-json="[(#VAL{json}|statistiques_url_data{mois,60})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{mois,60})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{mois,60})]"
data-json="[(#VAL{json}|statistiques_url_data{visites,mois,60})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{visites,mois,60})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{visites,mois,60})]"
onclick="spip_d3_statistiques_load_json(this, '#statistiques_visites'); return false;">
5 ans
</a>
<a class="bouton[ (#ENV{graph}|=={years}|oui)principal]" href="#"
data-graph="years"
data-title="<:statistiques:visites_annuelles|attribut_html:>"
data-json="[(#VAL{json}|statistiques_url_data{annee})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{annee})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{annee})]"
data-json="[(#VAL{json}|statistiques_url_data{visites,annee})]"
data-json-auteur="[(#VAL{json}|statistiques_url_data_auteur{visites,annee})]"
data-csv-auteur="[(#VAL{csv}|statistiques_url_data_auteur{visites,annee})]"
onclick="spip_d3_statistiques_load_json(this, '#statistiques_visites'); return false;">
</a>

9
prive/squelettes/inclure/stats-visites-jours_fonctions.php

@ -11,8 +11,9 @@ include_spip('prive/squelettes/inclure/stats-visites-data_fonctions');
*
* Nécessite une autorisation avec l'auteur connecté sur l'url cible.
*/
function statistiques_url_data(array $Pile, string $type = 'json', string $unite = 'jour', ?int $duree = null) : string {
$url = generer_url_public("statistiques.$type");
function statistiques_url_data(array $Pile, string $output = 'json', string $export = 'visites', string $unite = 'jour', ?int $duree = null) : string {
$url = generer_url_public("statistiques.$output");
$url = parametre_url($url, 'export', $export);
$url = parametre_url($url, 'unite', $unite);
if ($duree and $duree > 0) {
$url = parametre_url($url, 'duree', $duree);
@ -34,8 +35,8 @@ function statistiques_url_data(array $Pile, string $type = 'json', string $unite
* Ajoute un hash pour un auteur donné, de sorte qu'il puisse accéder aux statistiques même non connecté
* Possiblement utilisé pour télécharger périodiquement ses statistiques depuis un cron
*/
function statistiques_url_data_auteur(array $Pile, string $type = 'json', string $unite = 'jour', ?int $duree = null) : string {
$url = statistiques_url_data($Pile, $type, $unite, $duree);
function statistiques_url_data_auteur(array $Pile, string $output = 'json', string $export = 'visites', string $unite = 'jour', ?int $duree = null) : string {
$url = statistiques_url_data($Pile, $output, $export, $unite, $duree);
$params = param_low_sec('statistiques', ['hash' => md5($url)], '', 'voirstats');
// pas besoin de l'arg hash. Il sert juste à calculer une clé unique pour l'auteur.
return parametre_url($url . '&' . $params, 'hash', '');

9
statistiques.csv.html

@ -8,12 +8,15 @@ if (
and [(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})]
)
) {
?>
#CACHE{0}
?>[(#REM)
Ce squelette ne permet pas en l'état d'exporter autre chose que des données "date, visites."
]#CACHE{0}
#HTTP_HEADER{Content-Type: text/csv; charset=#CHARSET}
#HTTP_HEADER{Content-Disposition: attachment; filename=statistiques_#ENV{objet}_#ENV{id_objet}_#ENV{duree,90}.csv}
<B_statsj><:date|trim{':'}|trim:>,<:statistiques:info_visites|trim{':'}|trim:>
<BOUCLE_statsj(DATA){source stats_visites,jour,#ENV{duree},#ENV{objet},#ENV{id_objet}}{datapath data}>[(#VALEUR{date}|affdate{'Y-m-d'})],[(#VALEUR{visites})]
<BOUCLE_statsj(DATA){source stats_#ENV{export,visites},jour,#ENV{duree},#ENV{objet},#ENV{id_objet}}{datapath data}>[(#VALEUR{date}|affdate{'Y-m-d'})],[(#VALEUR{visites})]
</BOUCLE_statsj>
<?php
} else {

2
statistiques.json.html

@ -11,7 +11,7 @@ if (
?>
#CACHE{0}
#HTTP_HEADER{Content-Type: text/javascript; charset=#CHARSET}
[(#ENV{unite,jour}|transmettre_statistiques_json{#ENV{duree},#ENV{objet},#ENV{id_objet}})]
[(#ENV{export,visites}|transmettre_statistiques_json{#ENV{unite},#ENV{duree},#ENV{objet},#ENV{id_objet}})]
<?php
} else {
include_spip('inc/minipres');

4
statistiques.json_fonctions.php

@ -1,7 +1,7 @@
<?php
function transmettre_statistiques_json(string $unite, ?int $duree = null, ?string $objet = null, ?int $id_objet = null) {
$visites = charger_fonction('stats_visites_to_array', 'inc');
function transmettre_statistiques_json(string $export = 'visites', string $unite = 'jour', ?int $duree = null, ?string $objet = null, ?int $id_objet = null) {
$visites = charger_fonction('stats_' . $export . '_to_array', 'inc');
$stats = $visites($unite, $duree, $objet, $id_objet);
return json_encode($stats, JSON_PRETTY_PRINT);
}
Loading…
Cancel
Save