Changeset 89627 in spip-zone


Ignore:
Timestamp:
May 24, 2015, 3:20:37 PM (4 years ago)
Author:
eric@…
Message:

Correction d'un bug lors du changement de système d'unité.
Il faut renouveler le cache lors de la détection d'un changement sinon on affichera des données fausses avec une unité correcte et ce jusqu'à la prochaine échéance du cache.

Location:
_plugins_/rainette/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/rainette/trunk/inc/charger_meteo.php

    r89107 r89627  
    4242        $cache = $cacher($lieu, $mode);
    4343
    44         // Déterminer la période de renouvèlement du cache
     44        // Déterminer la période de renouvellement du cache
    4545        $reloader = "${service}_service2reload_time";
    4646        $reload_time = ($mode == 'previsions') ? $reloader('previsions') : $reloader('conditions');
    4747
     48        // Déterminer le système d'unité utilisé dans le cache et celui requis par la config.
     49        // Si ces système d'unité diffèrent il faut renouveler le cache sinon on affichera des données
     50        // fausses avec une unité correcte et ce jusqu'à la prochaine échéance du cache.
     51        if (file_exists($cache) AND ($mode != 'infos')) {
     52                include_spip('inc/config');
     53                $unite_config = lire_config("rainette/${service}/unite", 'm');
     54                $unite_cache = '';
     55
     56                lire_fichier($cache, $contenu);
     57                $tableau = unserialize($contenu);
     58                if ($mode == 'previsions') {
     59                        $index = count($tableau)-1;
     60                        $unite_cache = isset($tableau[$index]['config']['unite']) ? $tableau[$index]['config']['unite'] : 'm';
     61                } else {
     62                        $unite_cache = isset($tableau['config']['unite']) ? $tableau['config']['unite'] : 'm';
     63                }
     64        }
     65
    4866        // Mise à jour du cache avec les nouvelles données météo si besoin
    4967        if (!file_exists($cache)
    50         OR (($mode != 'infos') AND (!filemtime($cache) OR (time()-filemtime($cache)>$reload_time)))) {
     68        OR (($mode != 'infos') AND (!filemtime($cache) OR (time()-filemtime($cache)>$reload_time)))
     69        OR (($mode != 'infos') AND ($unite_config != $unite_cache))) {
    5170                // Construire l'url de la requête
    5271                $urler = "${service}_service2url";
  • _plugins_/rainette/trunk/inc/debusquer.php

    r89626 r89627  
    4848                        // On ajoute le lieu, le mode et le service au contexte fourni au modele
    4949                        if ($mode == 'previsions') {
    50                                 // Pour les prévisions les informations communes sont stockées dans un index supplémentaire en fin de tableau
     50                                // Pour les prévisions les informations communes sont stockées dans un index
     51                                // supplémentaire en fin de tableau
    5152                                $index = count($tableau)-1;
    5253                                $tableau[$index]['lieu'] = $lieu;
  • _plugins_/rainette/trunk/paquet.xml

    r89107 r89627  
    22        prefix="rainette"
    33        categorie="divers"
    4         version="2.1.14"
     4        version="2.1.15"
    55        etat="test"
    66        compatibilite="[3.0.11;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.