source: spip-zone/_core_/plugins/statistiques/inc/statistiques.php @ 93626

Last change on this file since 93626 was 93626, checked in by cedric@…, 5 years ago

Indentation et regles de codage selon http://www.spip.net/fr_article3497.html#regles_codage

File size: 2.1 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2014                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) {
14        return;
15}
16
17/**
18 * Calculer la moyenne glissante sur un nombre d'echantillons donnes
19 *
20 * @param int|bool $valeur
21 * @param int $glisse
22 * @return float
23 */
24function moyenne_glissante($valeur = false, $glisse = 0) {
25        static $v = array();
26        // pas d'argument, raz de la moyenne
27        if ($valeur === false) {
28                $v = array();
29
30                return 0;
31        }
32
33        // argument, on l'ajoute au tableau...
34        // surplus, on enleve...
35        $v[] = $valeur;
36        if (count($v) > $glisse) {
37                array_shift($v);
38        }
39
40        return round(statistiques_moyenne($v), 2);
41}
42
43/**
44 * Calculer la moyenne d'un tableau de valeurs
45 *
46 * http://code.spip.net/@statistiques_moyenne
47 *
48 * @param array $tab
49 * @return float
50 */
51function statistiques_moyenne($tab) {
52        if (!$tab) {
53                return 0;
54        }
55        $moyenne = 0;
56        foreach ($tab as $v) {
57                $moyenne += $v;
58        }
59
60        return $moyenne/count($tab);
61}
62
63/**
64 * Construire un tableau par popularite
65 *   classemnt => id_truc
66 *
67 * @param string $type
68 * @param string $serveur
69 * @return array
70 */
71function classement_populaires($type, $serveur = '') {
72        static $classement = array();
73        if (isset($classement[$type])) {
74                return $classement[$type];
75        }
76        $classement[$type] = sql_allfetsel(id_table_objet($type, $serveur), table_objet_sql($type, $serveur),
77                "statut='publie' AND popularite > 0", "", "popularite DESC", '', '', $serveur);
78        $classement[$type] = array_map('reset', $classement[$type]);
79
80        return $classement[$type];
81}
82
83
84?>
Note: See TracBrowser for help on using the repository browser.