source: spip-zone/_plugins_/shortcut_url/trunk/formulaires/shortcut_url_export_logs.php

Last change on this file was 98017, checked in by kent1@…, 3 years ago

Améliorer l'export des stats

File size: 3.1 KB
Line 
1<?php
2/**
3 * Gestion du formulaire d'export des shortcut_url des sites
4 *
5 * @plugin     shortcut_url
6 * @copyright  2015
7 * @author     cyp
8 * @license    GNU/GPL
9 * @package    SPIP\formulaires\shortcut_url_export_logs
10 */
11
12
13if (!defined('_ECRIRE_INC_VERSION')) {
14        return;
15}
16
17/**
18 * Chargement du formulaire de configuration du shortcut_url
19 *
20 * @return array
21 *     Environnement du formulaire
22 */
23function formulaires_shortcut_url_export_logs_charger_dist() {
24        $valeurs = array();
25        return $valeurs;
26}
27
28/**
29 * Vérifications du formulaire de shortcut_url
30 *
31 * @return array
32 *     Tableau des erreurs
33 */
34function formulaires_shortcut_url_export_logs_verifier_dist() {
35        $erreurs = array();
36        return $erreurs;
37}
38
39/**
40 * Traitement du formulaire de configuration du shortcut_url
41 *
42 * @return array
43 *     Retours du traitement
44 */
45function formulaires_shortcut_url_export_logs_traiter_dist() {
46        include_spip('inc/exporter_csv');
47        $donnees = array(array(' ', ' ', ' ', ' ', ' '), array(_T('shortcut_url:csv_nb_click'), _T('shortcut_url:csv_id'), _T('shortcut_url:csv_shortcut'), _T('shortcut_url:csv_url'), _T('shortcut_url:csv_description')));
48        $date = _request('annee').'-'._request('mois');
49        $req = sql_select(
50                'DISTINCT urls.id_shortcut_url, shortcut.titre, shortcut.description, shortcut.url',
51                'spip_shortcut_urls_logs as urls LEFT join spip_shortcut_urls as shortcut on urls.id_shortcut_url = shortcut.id_shortcut_url',
52                'DATE(urls.date_modif) like "' . $date . '%" and urls.humain="oui"'
53        );
54        foreach ($req as $valeur) {
55                $count_shortcut_url =  sql_countsel(
56                        'spip_shortcut_urls_logs',
57                        'id_shortcut_url=' . intval($valeur['id_shortcut_url']). ' AND DATE(date_modif) like "' . $date . '%" and humain="oui"'
58                );
59                $valeur = array_merge(array('nb_clicks' => $count_shortcut_url), $valeur);
60                $donnees[] = $valeur;
61        }
62
63        $donnees = array_sort_clicks($donnees, 'nb_clicks', SORT_DESC);
64        $exporter_csv = charger_fonction('exporter_csv', 'inc');
65        $date_jour = date('Y-m-d_H-i');
66        $nom_fichier_csv = 'shortcut_urls_logs_'.$date.'_-_'.$date_jour;
67
68        $exporter_csv(
69                $nom_fichier_csv,
70                $donnees,
71                ',',
72                array(_T('shortcut_url:titre_csv_export', array('date' => $date, 'date_jour' => $date_jour)))
73        );
74
75        return array('editable' => false, 'message_ok'=>_T('shortcut_url:config_export_ok'));
76}
77
78/**
79 * Fonction de tri d'un arrau
80 *
81 * @param array $array
82 *        Le tableau à trier
83 * @param string $on
84 *        Le champ sur lequel trier
85 * @param define $order
86 *        Dans quel ordre trier
87 * @return array Le tableau trié
88 */
89function array_sort_clicks($array, $on = 'nb_clicks', $order = SORT_ASC) {
90        $new_array = array();
91        $sortable_array = array();
92
93        if (count($array) > 0) {
94                foreach ($array as $k => $v) {
95                        if (is_array($v)) {
96                                foreach ($v as $k2 => $v2) {
97                                        if ($k2 == $on) {
98                                                $sortable_array[$k] = $v2;
99                                        }
100                                }
101                        } else {
102                                $sortable_array[$k] = $v;
103                        }
104                }
105
106                switch ($order) {
107                        case SORT_ASC:
108                                asort($sortable_array);
109                                break;
110                        case SORT_DESC:
111                                arsort($sortable_array);
112                                break;
113                }
114
115                foreach ($sortable_array as $k => $v) {
116                        $new_array[$k] = $array[$k];
117                }
118        }
119
120        return $new_array;
121}
Note: See TracBrowser for help on using the repository browser.