Ignore:
Timestamp:
Oct 6, 2013, 9:20:03 AM (6 years ago)
Author:
eric@…
Message:

Report de la correction de la fonction rainette_afficher_direction() avec gestion de la direction variable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/rainette/trunk/rainette_fonctions.php

    r70857 r77022  
    8383}
    8484
     85/**
     86 * Conversion une indication de direction en une chaine traduite pour
     87 * l'affichage dans les modèles.
     88 *
     89 * @param       mixed   $direction
     90 *              La direction soit sous forme d'une valeur numérique entre 0 et 360, soit sous forme
     91 *              d'une chaine. Certains services utilisent la chaine "V" pour indiquer une direction
     92 *              variable.
     93 * @return      string
     94 *              La chaine traduite indiquant la direction du vent.
     95 */
    8596function rainette_afficher_direction($direction) {
    86         static $liste_direction = 'N:NNE:NE:ENE:E:ESE:SE:SSE:S:SSW:SW:WSW:W:WNW:NW:NNW:V';
    87 
    88         include_spip('inc/convertir');
    89         $direction_abregee = (intval($direction)) ? angle2direction($direction) : $direction;
    90         if (!in_array($direction_abregee, explode(':', $liste_direction)))
     97        static $liste_direction = array(
     98                0 => 'N',
     99                1 => 'NNE',
     100                2 => 'NE',
     101                3 => 'ENE',
     102                4 => 'E',
     103                5 => 'ESE',
     104                6 => 'SE',
     105                7 => 'SSE',
     106                8 => 'S',
     107                9 => 'SSW',
     108                10 => 'SW',
     109                11 => 'WSW',
     110                12 => 'W',
     111                13 => 'WNW',
     112                14 => 'NW',
     113                15 => 'NNW',
     114                16 => 'N',
     115                17 => 'V'
     116        );
     117
     118        if (is_int($direction))
     119                $direction = $liste_direction[round($direction / 22.5) % 16];
     120        elseif (!in_array($direction, $liste_direction))
    91121                return _T('rainette:valeur_indeterminee');
    92         else
    93                 return _T('rainette:direction_'.$direction_abregee);
     122        return _T('rainette:direction_'.$direction);
    94123}
    95124
Note: See TracChangeset for help on using the changeset viewer.