Changeset 77022 in spip-zone


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

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

Location:
_plugins_/rainette/trunk
Files:
2 edited

Legend:

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

    r68658 r77022  
    22
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    4 
    5 /**
    6  * Conversion d'une valeur d'angle entre 0 et 360 degrés en une direction textuelle
    7  * abrégée à 16 points.
    8  *
    9  * @param       int             $angle  Valeur d'angle en degrés
    10  * @return      string                  La direction abrégée à partir des termes anglais
    11  */
    12 function angle2direction($angle) {
    13         $direction = '';
    14         switch(round($angle / 22.5) % 16)
    15         {
    16                 case 0:  $direction = 'N'; break;
    17                 case 1:  $direction = 'NNE'; break;
    18                 case 2:  $direction = 'NE'; break;
    19                 case 3:  $direction = 'ENE'; break;
    20                 case 4:  $direction = 'E'; break;
    21                 case 5:  $direction = 'ESE'; break;
    22                 case 6:  $direction = 'SE'; break;
    23                 case 7:  $direction = 'SSE'; break;
    24                 case 8:  $direction = 'S'; break;
    25                 case 9:  $direction = 'SSW'; break;
    26                 case 10: $direction = 'SW'; break;
    27                 case 11: $direction = 'WSW'; break;
    28                 case 12: $direction = 'W'; break;
    29                 case 13: $direction = 'WNW'; break;
    30                 case 14: $direction = 'NW'; break;
    31                 case 15: $direction = 'NNW'; break;
    32         }
    33         return $direction;
    34 }
    354
    365/**
  • _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.