source: spip-zone/_plugins_/rainette/trunk/inc/debusquer.php @ 94614

Last change on this file since 94614 was 94614, checked in by eric@…, 4 years ago

Pleins de modifications pour faire fonctionner les prévisions

  • Property svn:eol-style set to native
File size: 4.8 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7if (!defined('_RAINETTE_DEBUG')) {
8        define('_RAINETTE_DEBUG', false);
9}
10
11if (!defined('_RAINETTE_DEBUG_PREVISIONS')) {
12        define('_RAINETTE_DEBUG_PREVISIONS', 'index:date:lever_soleil:coucher_soleil:vitesse_vent:angle_vent:direction_vent:temperature_max:temperature_min:
13                risque_precipitation:precipitation:humidite:pression:code_meteo:icon_meteo:desc_meteo:periode:icone:resume');
14}
15if (!defined('_RAINETTE_DEBUG_CONDITIONS')) {
16        define('_RAINETTE_DEBUG_CONDITIONS',
17        'Donn&#233;es d\'observation:derniere_maj/station
18                |Temp&#233;ratures:temperature_reelle/temperature_ressentie
19                |Donn&#233;es an&#233;mom&#233;triques:vitesse_vent/angle_vent/direction_vent
20                |Donn&#233;es atmosph&#233;riques:humidite/point_rosee/pression/tendance_pression/visibilite
21                |&#201;tats m&#233;t&#233orologiques natifs:code_meteo/icon_meteo/desc_meteo
22                |&#201;tats m&#233;t&#233orologiques calcul&#233;s:icone/resume/periode');
23}
24if (!defined('_RAINETTE_DEBUG_INFOS')) {
25        define('_RAINETTE_DEBUG_INFOS',
26        'Lieu:ville/region
27                |Coordonn&#233;es:longitude/latitude
28                |D&#233;mographie:population');
29}
30if (!defined('_RAINETTE_DEBUG_TYPE_UNITE')) {
31        define('_RAINETTE_DEBUG_TYPE_UNITE',
32        'population:population
33                |temperature:temperature_reelle,temperature_ressentie,point_rosee,temperature_max,temperature_min
34                |vitesse:vitesse_vent
35                |angle:angle_vent,longitude,latitude
36                |pourcentage:risque_precipitation,humidite
37                |pression:pression
38                |distance:visibilite
39                |precipitation:precipitation
40                |indice:indice_uv');
41}
42
43
44function rainette_dbg_afficher_cache($lieu, $mode = 'previsions', $service = 'weather') {
45        $debug = '';
46
47        // Recuperation du tableau des conditions courantes
48        if (_RAINETTE_DEBUG and function_exists('bel_env')) {
49                $charger = charger_fonction('charger_meteo', 'inc');
50                $nom_fichier = $charger($lieu, $mode, $service);
51                if ($nom_fichier) {
52                        $contenu = '';
53                        lire_fichier($nom_fichier, $contenu);
54                        $tableau = unserialize($contenu);
55
56                        // On ajoute le lieu, le mode et le service au contexte fourni au modele
57                        if ($mode == 'previsions') {
58                                // Pour les prévisions les informations communes sont stockées dans un index
59                                // supplémentaire en fin de tableau
60                                $index = count($tableau) - 1;
61                                $tableau[$index]['lieu'] = $lieu;
62                                $tableau[$index]['mode'] = $mode;
63                                $tableau[$index]['service'] = $service;
64                        } else {
65                                $tableau['lieu'] = $lieu;
66                                $tableau['mode'] = $mode;
67                                $tableau['service'] = $service;
68                        }
69
70                        $debug = bel_env(serialize($tableau));
71                }
72        }
73
74        return $debug;
75}
76
77
78function rainette_dbg_comparer_services($mode = 'conditions', $jeu = array()) {
79        $debug = array();
80
81        if (!$mode) {
82                $mode = 'conditions';
83        }
84
85        $donnees = constant('_RAINETTE_DEBUG_' . strtoupper($mode));
86        $donnees = explode(':', $donnees);
87
88        if ($donnees) {
89                if (!$jeu) {
90                        $jeu = array(
91                                'weather'      => 'FRXX0076',
92                                'owm'          => 'Paris,Fr',
93                                'wwo'          => 'Paris,France',
94                                'wunderground' => 'Paris,France'
95                        );
96                }
97
98                // Recuperation du tableau des conditions courantes
99                foreach ($jeu as $_service => $_lieu) {
100                        $charger = charger_fonction('charger_meteo', 'inc');
101                        $nom_fichier = $charger($_lieu, $mode, $_service);
102                        if ($nom_fichier) {
103                                $contenu = '';
104                                lire_fichier($nom_fichier, $contenu);
105                                $tableau = unserialize($contenu);
106                                if ($tableau) {
107                                        foreach ($tableau as $_donnee => $_valeur) {
108                                                $type = gettype($tableau[$_donnee]);
109                                                $debug[$_donnee][$_service]['valeur'] = $_valeur;
110                                                $debug[$_donnee][$_service]['type'] = $type;
111                                                if ($_donnee != 'erreur') {
112                                                        $debug[$_donnee][$_service]['erreur'] = ($type === 'NULL') ? 'nonapi' : ($_valeur === '' ? 'erreur' : '');
113                                                } else {
114                                                        $debug[$_donnee][$_service]['erreur'] = $_valeur ? 'erreur' : '';
115                                                }
116                                        }
117                                }
118                        }
119                }
120        }
121
122        return $debug;
123}
124
125
126function rainette_dbg_afficher_donnee($donnee, $valeur, $type_php, $service = 'weather') {
127        static $types_unite = array();
128        $texte = '';
129
130        if (!$types_unite) {
131                $config_types = explode('|', _RAINETTE_DEBUG_TYPE_UNITE);
132                foreach ($config_types as $_config_type) {
133                        list($type, $donnees) = explode(':', trim($_config_type));
134                        foreach (explode(',', $donnees) as $_donnee) {
135                                $types_unite[$_donnee] = $type;
136                        }
137                }
138        }
139        $type_donnee = isset($types_unite[$donnee]) ? $types_unite[$donnee] : '';
140
141        if ($type_php === 'NULL') {
142                $texte = '<del>API</del>';
143                $type_php = '';
144        } elseif ($valeur === '') {
145                if ($donnee != 'erreur') {
146                        $texte = 'Indisponible';
147                } else {
148                        $texte = $valeur ? $valeur : 'Ok';
149                }
150        } elseif ($type_php === 'array') {
151                foreach ($valeur as $_cle => $_valeur) {
152                        $texte .= ($texte ? '<br />' : '') . "<strong>${_cle}</strong> : " . ((gettype($_valeur) === null) ? '<del>API</del>' : $_valeur);
153                }
154        } else {
155                $texte = $type_donnee ? rainette_afficher_unite($valeur, $type_donnee, -1, $service) : $valeur;
156        }
157        $texte .= "<br /><em>${type_php}</em>";
158
159        return $texte;
160}
Note: See TracBrowser for help on using the repository browser.