[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / statistiques / inc / statistiques.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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
13 if (!defined("_ECRIRE_INC_VERSION")) return;
14
15 /**
16 * Calculer la moyenne glissante sur un nombre d'echantillons donnes
17 * @param int|bool $valeur
18 * @param int $glisse
19 * @return float
20 */
21 function moyenne_glissante($valeur = false, $glisse=0) {
22 static $v = array();
23 // pas d'argument, raz de la moyenne
24 if ($valeur === false) {
25 $v = array();
26 return 0;
27 }
28
29 // argument, on l'ajoute au tableau...
30 // surplus, on enleve...
31 $v[] = $valeur;
32 if (count($v) > $glisse)
33 array_shift($v);
34
35 return round(statistiques_moyenne($v),2);
36 }
37
38 /**
39 * Calculer la moyenne d'un tableau de valeurs
40 *
41 * http://code.spip.net/@statistiques_moyenne
42 *
43 * @param array $tab
44 * @return float
45 */
46 function statistiques_moyenne($tab){
47 if (!$tab) return 0;
48 $moyenne = 0;
49 foreach($tab as $v) $moyenne += $v;
50 return $moyenne / count($tab);
51 }
52
53 /**
54 * Construire un tableau par popularite
55 * classemnt => id_truc
56 * @param string $type
57 * @param string $serveur
58 * @return array
59 */
60 function classement_populaires($type, $serveur=''){
61 static $classement = array();
62 if (isset($classement[$type]))
63 return $classement[$type];
64 $classement[$type] = sql_allfetsel(id_table_objet($type, $serveur), table_objet_sql($type, $serveur), "statut='publie' AND popularite > 0", "", "popularite DESC",'','',$serveur);
65 $classement[$type] = array_map('reset',$classement[$type]);
66 return $classement[$type];
67 }
68
69
70 ?>