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

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

Correction d'erreurs remontées par scrutinizer (dont un vrai bug!)

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