Changeset 108180 in spip-zone


Ignore:
Timestamp:
Dec 24, 2017, 6:59:25 PM (18 months ago)
Author:
eric@…
Message:

Fin de la mise au point du service weatherbit.io et refactoring complet de la configuration des services. Pour la peine un up de y.

Location:
_plugins_/rainette/trunk
Files:
2 added
10 deleted
13 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/rainette/trunk/formulaires/configurer_rainette_service.html

    r108179 r108180  
    11<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
    2         <h3 class="titrem"><:rainette:titre_service_weather:></h3>
     2        <h3 class="titrem">[(#ENV{nom}|filtrer_entites)]</h3>
    33
    44        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
     
    99                <fieldset>
    1010                        <legend><:rainette:legende_configurer_inscription:></legend>
    11                         <p><:rainette:info_configurer_cle_aucune:></p>
     11                        [(#REM) <!-- Configuration de la clé d'inscription si requise --> ]
     12                        [(#ENV{service}|=={weather}|oui)
     13                                <p><:rainette:explication_configurer_cle_aucune:></p>
     14                        ]
     15                        [(#ENV{service}|=={weather}|non)
     16                        <div class="editer-groupe">
     17                                #SET{type_cle, obligatoire}
     18                                [(#SET{url, [<a class="spip_out"[ href="(#ENV{configuration/enregistrement/lien})"] target="_blank">(#ENV{configuration/enregistrement/titre})</a>]})]
     19                                [(#SET{explication, #VAL{rainette:explication_configurer_cle_}
     20                                        |concat{#GET{type_cle}}
     21                                        |_T{#ARRAY{url,#GET{url}}}})]
     22                                [(#SAISIE{input, inscription,
     23                                        explication=#GET{explication},
     24                                        label=<:rainette:label_cle:>,
     25                                        obligatoire=oui,
     26                                        size=#ENV{configuration/enregistrement/taille_cle},
     27                                        maxlength=#ENV{configuration/enregistrement/taille_cle}
     28                                })]
     29                        </div>
     30                        ]
    1231                </fieldset>
    1332
    1433                <fieldset>
    1534                        <legend><:rainette:legende_configurer_affichage:></legend>
    16                         <ul class="editer-groupe">
    17                                 <INCLURE{fond=formulaires/inc-configurer_unite,
    18                                         service=weather,
    19                                         env} />
    20                         </ul>
     35                        <div class="editer-groupe">
     36                                [(#REM) <!-- Configuration du système d'unité à utiliser pour les données météo --> ]
     37                                [(#SAISIE{radio, unite,
     38                                        datas=#ARRAY{m, <:rainette:label_unite_metrique:>, s, <:rainette:label_unite_standard:>},
     39                                        explication=<:rainette:explication_configurer_unite:>,
     40                                        label=<:rainette:label_unite:>,
     41                                })]
     42
     43                        [(#ENV{service}|=={weather}|non)
     44                                [(#REM) <!-- Configuration du système d'icônes à utiliser (sauf pour weather) --> ]
     45                                [(#SAISIE{radio, condition,
     46                                        datas=#ARRAY{#ENV{service}, <:rainette:label_condition_native:>, weather, <:rainette:label_condition_weather:>},
     47                                        explication=<:rainette:explication_configurer_condition:>,
     48                                        label=<:rainette:label_condition:>,
     49                                })]
     50                        ]
     51
     52                                [(#REM) <!-- Configuration du thème d'icônes à utiliser (wunderground) --> ]
     53                                #SET{themes, #ENV{service}|rainette_lister_themes}
     54                        [(#GET{themes}|oui)
     55                                [(#SAISIE{radio, theme,
     56                                        datas=#GET{themes},
     57                                        explication=<:rainette:explication_configurer_theme:>,
     58                                        label=<:rainette:label_theme:>,
     59                                })]
     60                        ]
     61                        </div>
    2162                </fieldset>
    2263
    2364                <fieldset>
    2465                        <legend><:rainette:legende_configurer_utilisation:></legend>
    25                         <INCLURE{fond=formulaires/inc-configurer_usage,
    26                                 service=weather,
    27                                 env} />
     66                        [(#SET{url, [<a class="spip_out"[ href="(#ENV{configuration/offres/lien})"] target="_blank">(#ENV{configuration/offres/titre})</a>]})]
     67                        [<p>(#VAL{rainette:explication_utilisation_}|concat{#ENV{service}}|_T{#ARRAY{url, #GET{url}}})</p>]
     68                        [(#ENV{configuration/offres/limites}|oui)<p><:rainette:explication_utilisation_rainette:></p>]
     69                        <table>
     70                                <tbody>
     71                                        <tr>
     72                                                <td><:rainette:label_dernier_appel:></td>
     73                                                <td>[(#ENV{utilisation/dernier_appel})]</td>
     74                                        </tr>
     75                                <BOUCLE_compteurs(DATA) {source table, #ENV{utilisation/compteurs}}>
     76                                        <tr>
     77                                                <td>[(#VAL{rainette:label_compteur_}|concat{#CLE}|_T)]</td>
     78                                                <td>[[<strong>(#VALEUR)</strong>] / (#ENV{configuration/offres/limites/#CLE})]</td>
     79                                        </tr>
     80                                </BOUCLE_compteurs>
     81                                </tbody>
     82                        </table>
    2883                </fieldset>
    29                 <ul>
    30                 </ul>
    3184
    32                 <input type="hidden" name="_meta_casier" value="rainette/weather" />
     85                <fieldset>
     86                        <legend><:rainette:legende_configurer_credit:></legend>
     87                        [(#SET{url, [<a class="spip_out"[ href="(#ENV{configuration/termes/lien})"] target="_blank">(#ENV{configuration/termes/titre})</a>]})]
     88                        [<p>(#VAL{rainette:explication_credit_}|concat{#ENV{service}}|_T{#ARRAY{url, #GET{url}}})</p>]
     89                        <p><:rainette:explication_credit_rainette:></p>
     90                </fieldset>
     91
     92                <input type="hidden" name="_meta_casier" value="rainette/#ENV{service}" />
    3393                <p class="boutons">
    3494                        <input type="submit" name="_cfg_ok" class="submit" value="<:bouton_valider:>" />
     
    3696        </div></form>
    3797</div>
     98
     99<script type="text/javascript">
     100//<![CDATA[
     101        jQuery(document).ready(function() {
     102                [(#ENV{condition, weather}|=={weather}|oui)
     103                        jQuery(".editer_theme").hide();
     104                ]
     105                jQuery("input[name='condition']").change(function() {
     106                        if (jQuery("input[name='condition']:checked").val() == 'wunderground') {
     107                                jQuery(".editer_theme").show();
     108                        }
     109                        else {
     110                                jQuery(".editer_theme").hide();
     111                        }
     112                        jQuery(this).blur();
     113                });
     114        });
     115//]]>
     116</script>
  • _plugins_/rainette/trunk/inc/meteo_charger.php

    r108135 r108180  
    129129                        )
    130130                );
    131                 if (!requete_autorisee($configuration['limites'], $service)) {
     131                if (!requete_autorisee($configuration['offres']['limites'], $service)) {
    132132                        // La requête n'est pas autorisée parce qu'elle excède les limitations d'utilisation du service.
    133133                        // On renvoie une erreur pour prévenir les utilisateurs.
  • _plugins_/rainette/trunk/inc/rainette_debusquer.php

    r108135 r108180  
    247247                                : '--';
    248248                        foreach (array('year', 'month', 'day', 'hour', 'minute') as $_periode) {
    249                                 if (isset($configuration['limites'][$_periode])) {
     249                                if (isset($configuration['offres']['limites'][$_periode])) {
    250250                                        $compteur = isset($execution[$_service]['compteurs'][$_periode])
    251251                                                ? $execution[$_service]['compteurs'][$_periode]
    252252                                                : '--';
    253                                         $debug[$_service][$_periode] = "${compteur} / {$configuration['limites'][$_periode]}";
     253                                        $debug[$_service][$_periode] = "${compteur} / {$configuration['offres']['limites'][$_periode]}";
    254254                                } else {
    255255                                        $debug[$_service][$_periode] = '';
  • _plugins_/rainette/trunk/inc/rainette_requeter.php

    r108073 r108180  
    4242        }
    4343        // On met à jour tous les compteurs
    44         if ($configuration['limites']) {
    45                 foreach ($configuration['limites'] as $_periode => $_seuil) {
     44        if ($configuration['offres']['limites']) {
     45                foreach ($configuration['offres']['limites'] as $_periode => $_seuil) {
    4646                        $execution[$service]['compteurs'][$_periode] = isset($execution[$service]['compteurs'][$_periode])
    4747                                ? $execution[$service]['compteurs'][$_periode] + 1
  • _plugins_/rainette/trunk/lang/rainette_fr.php

    r108135 r108180  
    3535        'erreur_analyse_xml' => 'L\'analyse du flux XML renvoyé par le @service@ a échoué.',
    3636        'erreur_aucune_donnee' => 'Aucune donnée n\'a été renvoyée par le service @service@ mais le service n\'a pas monté d\'erreur.',
     37        'erreur_conseil_equipe' => 'Veuillez contacter l\'équipe de développement du plugin.',
     38        'erreur_conseil_limite' => 'Veuillez attendre que la période soit échue. Alternativement, vous pouvez mettre à jour votre enregistrement vers une option payante autorisant plus de requêtes par unité de temps voire changer de service.',
    3739        'erreur_conseil_modele_changer' => 'Veuillez utiliser un autre modèle.',
    3840        'erreur_conseil_modele_expliciter' => 'Veuillez préciser explicitement la périodicité horaire ou renommer le modèle correctement.',
    39         'erreur_conseil_equipe' => 'Veuillez contacter l\'équipe de développement du plugin.',
    4041        'erreur_conseil_periodicite' => 'Veuillez utiliser une autre périodicité ou un autre modèle.',
    4142        'erreur_conseil_service' => 'Veuillez consulter le message du service ci-dessous.',
    42         'erreur_conseil_limite' => 'Veuillez attendre que la période soit échue. Alternativement, vous pouvez mettre à jour votre enregistrement vers une option payante autorisant plus de requêtes par unité de temps voire changer de service.',
    4343        'erreur_limite_service' => 'Le nombre de requêtes maximum autorisé par le service @service@ a été atteint. Il est temporairement impossible d\'afficher des données météorologiques.',
    4444        'erreur_modele_inutilisable' => 'Le nom du modèle @modele@ ne permet pas de déterminer une périodicité horaire par défaut.',
     
    4848        'erreur_reponse_service_infos' => 'Le service @service@ ne fournit actuellement aucune condition météorologique sur le lieu @lieu@.',
    4949        'erreur_reponse_service_previsions' => 'Le service @service@ ne fournit actuellement aucune prévision météorologique sur le lieu @lieu@.',
    50         'erreur_url_indisponible' => 'L\'URL utilisée pour le @service@ semble erronée.',
     50        'erreur_url_indisponible' => 'L\'URL utilisée pour le service @service@ semble erronée.',
     51        'explication_configurer_cle_aucune' => 'Ce service ne nécessite aucune clé d\'inscription pour être utilisé.',
     52        'explication_configurer_cle_facultative' => 'Ce service <strong>ne nécessite pas une clé d\'inscription</strong> pour être utilisé mais il est fortement recommandé d\'en acquérir une. Si vous le decidez, veuillez acquérir cette clé sur la page @url@ et la saisir ci-dessous.',
     53        'explication_configurer_cle_obligatoire' => 'Ce service nécessite toujours une clé d\'inscription pour être utilisé. Veuillez acquérir cette clé sur la page @url@ et la saisir ci-dessous.',
     54        'explication_configurer_condition' => 'Choisissez le mode d\'affichage du résumé et de l\'icone représentatifs d\'une condition météorologique donnée.',
     55        'explication_configurer_theme' => 'Choisissez le thème d\'icônes à utiliser dans les affichages.',
     56        'explication_configurer_unite' => 'Choisissez le système d\'unité dans lequel seront exprimées les données météorologiques.',
     57        'explication_credit_apixu' => 'Ce service fournit des données météorologiques pour une utilisation commerciale ou personnelle. Si vous utilisez une offre de service gratuite, il est demandé de créditer le service avec un lien vers son site web sous une forme textuelle ou par l\'intermédiaire du logo officiel. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page @url@.',
     58        'explication_credit_owm' => 'Ce service fournit des données météorologiques sous licence CC-BY-SA 4.0 pour une utilisation commerciale ou personnelle. Il est demandé de toujours créditer le service avec un lien vers son site web. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page @url@.',
     59        'explication_credit_rainette' => 'Les modèles d\'affichage fournis par Rainette créditent toujours le service indépendamment de l\'offre utilisée. Si vous créez vos propres modèles veillez absolument à respecter les règles d\'usage de l\'offre de service choisie ou plus simplement à créditer systématiquement le service.',
     60        'explication_credit_weather' => 'Ce service fournit des données météorologiques pour une utilisation personnelle. Il est demandé de toujours créditer le service avec un lien vers le site web si possible agrémenté du logo du service.',
     61        'explication_credit_weatherbit' => 'Ce service fournit des données météorologiques pour une utilisation commerciale ou pas. Il est demandé de créditer le service avec un lien vers le site web. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page <a href="https://www.weatherbit.io/terms">Terms of Service</a>.',
     62        'explication_credit_wunderground' => 'Ce service fournit des données météorologiques pour une utilisation personnelle. Pour une utilisation commerciale il convient de contacter les auteurs du service. Il est aussi demandé de créditer le service avec un lien vers son site web sous une forme textuelle et par l\'intermédiaire du logo officiel. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page @url@.',
     63        'explication_credit_wwo' => 'Ce service fournit des données météorologiques pour une utilisation commerciale ou personnelle. Etant donné que le service ne fournit plus d\'offre gratuite il n\'est pas nécessaire de créditer le service avec un lien vers le site web. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page @url@.',
     64        'explication_utilisation_apixu' => 'Ce service propose plusieurs offres dont une gratuite: les détails sont consultables sur la page @url@. Chaque offre n\'autorise qu\'un nombre limité de requêtes au service par mois. L\'offre gratuite est généralement suffisante pour une utilisation classique.',
     65        'explication_utilisation_owm' => 'Ce service propose plusieurs offres dont une gratuite: les détails sont consultables sur la page @url@. Chaque offre n\'autorise qu\'un nombre limité de requêtes au service par minute. L\'offre gratuite est généralement suffisante pour une utilisation classique.',
     66        'explication_utilisation_rainette' => 'Rainette se cale sur l\'offre de service la plus limitée (en général, l\'offre gratuite si elle existe) pour assurer de ne jamais dépasser le nombre autorisé de requêtes. Vous pouvez consulter l\'état courant d\'utilisation du service dans le tableau ci-dessous:',
     67        'explication_utilisation_weather' => 'Ce service historique ne propose plus qu\'une seule offre gratuite dont la pérennité n\'est plus assurée étant donné que le service Weather Underground a remplacé l\'API de weather.com&reg;. Cette offre n\'impose aucune limitation du nombre de requêtes.',
     68        'explication_utilisation_weatherbit' => 'Ce service propose plusieurs offres dont une gratuite: les détails sont consultables sur la page @url@. Chaque offre n\'autorise qu\'un nombre limité de requêtes au service par heure ou par minute. L\'offre gratuite est généralement suffisante pour une utilisation classique.',
     69        'explication_utilisation_wunderground' => 'Ce service propose plusieurs offres dont certaines gratuites: les détails sont consultables sur la page @url@. Chaque offre n\'autorise qu\'un nombre limité de requêtes au service par minute et par jour. Les offres gratuites sont généralement suffisantes pour une utilisation classique.',
     70        'explication_utilisation_wwo' => 'Ce service propose plusieurs offres mais plus aucune gratuite étant donné que c\'est le service APIXU qui s\'en occupe aujourd\'hui: les détails sont consultables sur la page @url@. Chaque offre n\'autorise qu\'un nombre limité de requêtes au service par jour.',
    5171
    5272        // G
     73        'groupe_donnees_anemometriques' => 'Données anémométriques',
     74        'groupe_donnees_astronomiques' => 'Données astronomiques',
     75        'groupe_donnees_atmospheriques' => 'Données atmosphériques',
     76        'groupe_donnees_coordonnees' => 'Coordonnées géographiques',
     77        'groupe_donnees_etats_calcules' => 'États météorologiques calculés',
     78        'groupe_donnees_etats_natifs' => 'États météorologiques natifs',
     79        'groupe_donnees_lieu' => 'Lieu',
    5380        'groupe_donnees_observation' => 'Données d\'observation',
    54         'groupe_donnees_astronomiques' => 'Données astronomiques',
    5581        'groupe_donnees_temperatures' => 'Températures',
    56         'groupe_donnees_anemometriques' => 'Données anémométriques',
    57         'groupe_donnees_atmospheriques' => 'Données atmosphériques',
    58         'groupe_donnees_etats_natifs' => 'États météorologiques natifs',
    59         'groupe_donnees_etats_calcules' => 'États météorologiques calculés',
    60         'groupe_donnees_lieu' => 'Lieu',
    61         'groupe_donnees_coordonnees' => 'Coordonnées géographiques',
    6282
    6383        // H
     
    6585
    6686        // I
    67         'info_configurer_format' => 'Choisissez le format d\'échange dans lequel le service fournit les données. En général, la valeur par défaut (@defaut@) n\'a pas à être modifiée car le format ne devrait pas influer sur la valeur des données météorologiques. Néanmoins, certains services ne garantissent pas cette cohérence et il peut être intéressant de tester les deux options.',
    68         'info_configurer_unite' => 'Choisissez le système d\'unité dans lequel seront exprimées les données météorologiques.',
    69         'info_configurer_cle_obligatoire' => 'Ce service nécessite une clé d\'inscription pour être utilisé. Veuillez acquérir cette clé sur @url@ et la saisir ci-dessous.',
    70         'info_configurer_cle_facultative' => 'Ce service <strong>ne nécessite pas une clé d\'inscription</strong> pour être utilisé mais vous pouvez en préciser une comme le recommande le fournisseur. Si vous le decidez, veuillez acquérir cette clé sur @url@ et la saisir ci-dessous.',
    71         'info_configurer_cle_aucune' => 'Ce service ne nécessite aucune clé d\'inscription pour être utilisé.',
    72         'info_configurer_condition' => 'Choisissez le mode d\'affichage du résumé et de l\'icone représentatifs d\'une condition météorologique donnée.',
    73         'info_utilisation_rainette' => 'Les modèles d\'affichage fournis par Rainette suivent les règles d\'usage de chaque service. Si vous créez vos propres modèles veillez également à les respecter.',
    74         'info_utilisation_weather' => 'Le service fournit gratuitement les données météorologiques. Il est demandé de créditer le service avec un lien vers le site web et le logo du service.',
    75         'info_utilisation_weatherbit' => 'Le service fournit gratuitement les données météorologiques pour une utilisation commerciale ou pas. Il est demandé de créditer le service avec un lien vers le site web. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page <a href="https://www.weatherbit.io/terms">Terms of Service</a>.',
    76         'info_utilisation_owm' => 'Le service fournit gratuitement les données météorologiques sous licence CC-BY-SA 2.0 pour une utilisation commerciale ou pas. Il est demandé de créditer le service avec un lien vers le site web. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page <a href="http://openweathermap.org/copyright">Terms and Conditions</a>.',
    77         'info_utilisation_apixu' => 'Le service fournit gratuitement les données météorologiques pour une utilisation commerciale ou pas. Il est demandé de créditer le service avec un lien vers le site web. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page <a href="https://www.apixu.com/terms.aspx">Terms and Conditions</a>.',
    78         'info_utilisation_wwo' => 'Le service fournit en mode premium les données météorologiques pour une utilisation commerciale ou pas. Il est demandé de créditer le service avec un lien vers le site web. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page <a href="http://developer.worldweatheronline.com/api_terms_and_conditions">API Terms and Conditions</a>.',
    79         'info_utilisation_wunderground' => 'Le service fournit gratuitement les données météorologiques. Il est demandé de créditer le service avec le nom et le logo du service. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page <a href="http://www.wunderground.com/weather/api/d/terms.html">Weather API Terms of Service</a>.',
    80         'info_utilisation_yahoo' => 'Le service fournit gratuitement les données météorologiques pour les usages personnel et à but non lucratif. Il est demandé de créditer le service avec le nom du service ou le logo. Pour consulter les termes exacts d\'utilisation veuillez vous rendre sur la page <a href="http://developer.yahoo.com/weather/#terms">Terms of Use</a>.',
    81         'info_configurer_theme' => 'Choisissez le thème d\'icônes utilisé dans les affichages.',
     87        'info_credits' => 'Données fournies par @service@',
    8288        'info_page_configurer' => 'Rainette propose une configuration pour chacun des services de météorologie intégré au plugin. Néanmoins, seuls les services utilisés dans votre site nécessitent d\'être configurés.',
    83         'info_credits' => 'Données fournies par @service@',
     89        'info_utilisation_sans_limite' => 'Aucune limitation du nombre de requêtes',
    8490
    8591        // I
     
    9096
    9197        // L
    92         'latitude' => 'latitude',
    93         'lever_soleil' => 'lever du soleil',
    94         'lieu' => 'lieu',
    95         'longitude' => 'longitude',
    96         'label_theme' => 'Thème d\'icônes',
     98        'label_cle' => 'Clé d\'inscription',
     99        'label_compteur_month' => 'Compteur mois',
     100        'label_compteur_day' => 'Compteur jour',
     101        'label_compteur_hour' => 'Compteur heure',
     102        'label_compteur_minute' => 'Compteur minute',
     103        'label_condition_native' => 'Utilisation du résumé et de l\'icone fourni par ce service',
     104        'label_condition_weather' => 'Utilisation du résumé et de l\'icone du service weather.com&reg; (nécessite une conversion approximative de la condition)',
     105        'label_condition' => 'Conditions météorologiques',
     106        'label_dernier_appel' => 'Dernier appel',
     107        'label_format_json' => 'JSON',
     108        'label_format_xml' => 'XML',
     109        'label_format' => 'Format d\'échange',
    97110        'label_theme_wunderground_a' => 'Default',
    98111        'label_theme_wunderground_b' => 'Smiley',
     
    104117        'label_theme_wunderground_h' => 'Comtemporary',
    105118        'label_theme_wunderground_i' => 'Minimalist',
     119        'label_theme_wunderground_j' => 'Helen',
    106120        'label_theme_wunderground_k' => 'Incredible',
    107         'label_unite' => 'Système d\'unité',
     121        'label_theme' => 'Thème d\'icônes',
    108122        'label_unite_metrique' => 'Système métrique',
    109123        'label_unite_standard' => 'Système impérial',
    110         'label_cle' => 'Clé d\'inscription',
    111         'label_condition' => 'Conditions météorologiques',
    112         'label_condition_native' => 'Utilisation du résumé et de l\'icone fourni par ce service',
    113         'label_condition_weather' => 'Utilisation du résumé et de l\'icone du service Weather.com (nécessite une conversion approximative de la condition)',
    114         'label_format' => 'Format d\'échange',
    115         'label_format_xml' => 'XML',
    116         'label_format_json' => 'JSON',
     124        'label_unite' => 'Système d\'unité',
     125        'latitude' => 'latitude',
    117126        'legende_configurer_affichage' => 'Affichages des données',
     127        'legende_configurer_credit' => 'Crédits',
    118128        'legende_configurer_format' => 'Récupération des données',
    119129        'legende_configurer_inscription' => 'Enregistrement',
    120         'legende_configurer_utilisation' => 'Conditions d\'utilisation',
     130        'legende_configurer_utilisation' => 'Offres & conditions d\'utilisation',
     131        'lever_soleil' => 'lever du soleil',
     132        'lieu' => 'lieu',
     133        'longitude' => 'longitude',
    121134
    122135        // M
    123         'meteo' => 'météo',
    124136        'meteo_0' => 'tornade',
    125137        'meteo_1' => 'tempête tropicale',
     
    174186        'meteo_de' => 'Météo de @ville@',
    175187        'meteo_na' => 'N/D',
    176         'meteo_previsions' => 'prévisions météorologiques',
    177188        'meteo_previsions_aujourdhui' => 'prévisions météorologiques pour aujourd\'hui',
    178189        'meteo_previsions_n_jours' => 'prévisions météorologiques à @nbj@ jours',
    179 
     190        'meteo_previsions' => 'prévisions météorologiques',
     191        'meteo' => 'météo',
     192
     193        'meteo_113' => 'Ensoleillé',
     194        'meteo_116' => 'Partiellement nuageux',
     195        'meteo_119' => 'Nuageux',
     196        'meteo_122' => 'Nuage épais',
     197        'meteo_143' => 'Brume',
     198        'meteo_176' => 'Pluie éparse',
     199        'meteo_179' => 'Neige éparse',
     200        'meteo_182' => 'Grêle éparse',
     201        'meteo_185' => 'Bruine froide et éparse',
     202        'meteo_200' => 'Orage localisé',
     203        'meteo_227' => 'Neige et vent',
     204        'meteo_230' => 'Tempête de neige',
     205        'meteo_248' => 'Brouillard           ',
     206        'meteo_260' => 'Brouillard et froid',
     207        'meteo_263' => 'Bruine légère et éparse',
     208        'meteo_266' => 'Bruine légère',
     209        'meteo_281' => 'Bruine froide',
     210        'meteo_284' => 'Bruine gelée',
     211        'meteo_293' => 'Pluie légère et éparse',
     212        'meteo_296' => 'Pluie légère',
     213        'meteo_299' => 'Pluie modérée intermittente',
     214        'meteo_302' => 'Pluie modérée',
     215        'meteo_305' => 'Pluie torrentielle intermittente',
     216        'meteo_308' => 'Pluie torrentielle',
     217        'meteo_311' => 'Froid léger',
     218        'meteo_314' => 'Froid',
     219        'meteo_317' => 'Grêle légère',
     220        'meteo_320' => 'Grêle lourde',
     221        'meteo_323' => 'Neige légère et éparse',
     222        'meteo_326' => 'Neige légère',
     223        'meteo_329' => 'Neige modérée et éparse',
     224        'meteo_332' => 'Neige modérée',
     225        'meteo_335' => 'Neige lourde et éparse',
     226        'meteo_338' => 'Neige lourde',
     227        'meteo_350' => 'Grêle',
     228        'meteo_353' => 'Légère pluie',
     229        'meteo_356' => 'Averses',
     230        'meteo_359' => 'Pluie torrentielle',
     231        'meteo_362' => 'Grésils légers',
     232        'meteo_365' => 'Grésils lourds',
     233        'meteo_368' => 'Neige légère',
     234        'meteo_371' => 'Neige lourde',
     235        'meteo_374' => 'Pluie légère avec grêle',
     236        'meteo_377' => 'Pluie avec grêle',
     237        'meteo_386' => 'Tempête',
     238        'meteo_389' => 'Orage',
     239        'meteo_392' => 'Tempête',
    180240        'meteo_395' => 'Neige Lourde',
    181         'meteo_392' => 'Tempête',
    182         'meteo_389' => 'Orage',
    183         'meteo_386' => 'Tempête',
    184         'meteo_377' => 'Pluie avec grêle',
    185         'meteo_374' => 'Pluie légère avec grêle',
    186         'meteo_371' => 'Neige lourde',
    187         'meteo_368' => 'Neige légère',
    188         'meteo_365' => 'Grésils lourds',
    189         'meteo_362' => 'Grésils légers',
    190         'meteo_359' => 'Pluie torrentielle',
    191         'meteo_356' => 'Averses',
    192         'meteo_353' => 'Légère pluie',
    193         'meteo_350' => 'Grêle',
    194         'meteo_338' => 'Neige lourde',
    195         'meteo_335' => 'Neige lourde et éparse',
    196         'meteo_332' => 'Neige modérée',
    197         'meteo_329' => 'Neige modérée et éparse',
    198         'meteo_326' => 'Neige légère',
    199         'meteo_323' => 'Neige légère et éparse',
    200         'meteo_320' => 'Grêle lourde',
    201         'meteo_317' => 'Grêle légère',
    202         'meteo_314' => 'Froid',
    203         'meteo_311' => 'Froid léger',
    204         'meteo_308' => 'Pluie torrentielle',
    205         'meteo_305' => 'Pluie torrentielle intermittente',
    206         'meteo_302' => 'Pluie modérée',
    207         'meteo_299' => 'Pluie modérée intermittente',
    208         'meteo_296' => 'Pluie légère',
    209         'meteo_293' => 'Pluie légère et éparse',
    210         'meteo_284' => 'Bruine gelée',
    211         'meteo_281' => 'Bruine froide',
    212         'meteo_266' => 'Bruine légère',
    213         'meteo_263' => 'Bruine légère et éparse',
    214         'meteo_260' => 'Brouillard et froid',
    215         'meteo_248' => 'Brouillard           ',
    216         'meteo_230' => 'Tempête de neige',
    217         'meteo_227' => 'Neige et vent',
    218         'meteo_200' => 'Orage localisé',
    219         'meteo_185' => 'Bruine froide et éparse',
    220         'meteo_182' => 'Grêle éparse',
    221         'meteo_179' => 'Neige éparse',
    222         'meteo_176' => 'Pluie éparse',
    223         'meteo_143' => 'Brume',
    224         'meteo_122' => 'Nuage épais',
    225         'meteo_119' => 'Nuageux',
    226         'meteo_116' => 'Partiellement nuageux',
    227         'meteo_113' => 'Ensoleillé',
    228241
    229242        // N
    230243        'noisette_description_conditions' => 'Affichage des conditions météorologiques pour un service donné',
    231244        'noisette_description_previsions_24h' => 'Affichage des prévisions météorologiques 24h pour un service donné',
    232         'noisette_explication_lieu' => 'Suivant le service, le lieu peut être exprimé comme une ville suivie par le code ISO d\'un pays, comme des coordonnées géographiques, comme une adresse IP ou comme un identifiant weather.com&reg;.
    233         Consultez la documentation pour connaitre la compatibilité avec le service choisi.',
    234245        'noisette_explication_jour' => 'Le jour courant correspond à la valeur 0 et ainsi de suite. Consultez la documentation pour connaitre le nombre de jours de prévisions fournis pour chaque service.',
    235         'noisette_titre_conditions' => 'Conditions météorologiques',
    236         'noisette_titre_previsions_24h' => 'Prévisions météorologiques 24h',
     246        'noisette_explication_lieu' => 'Suivant le service, le lieu peut être exprimé comme une ville suivie par le code ISO d\'un pays, comme des coordonnées géographiques, comme une adresse IP ou comme un identifiant weather.com&reg;. Consultez la documentation pour connaitre la compatibilité avec le service choisi.',
    237247        'noisette_label_jour_1' => 'Premier jour des prévisions',
     248        'noisette_label_lieu' => 'Lieu',
     249        'noisette_label_modele' => 'Modèle d\'affichage à utiliser',
    238250        'noisette_label_nb_jours' => 'Nombre de jours affichés',
    239         'noisette_label_lieu' => 'Lieu',
    240251        'noisette_label_service' => 'Service météorologique utilisé',
    241252        'noisette_label_titre_conditions' => 'Afficher un titre pour les conditions ?',
    242253        'noisette_label_titre_previsions' => 'Afficher un titre pour les prévisions ?',
    243         'noisette_label_modele' => 'Modèle d\'affichage à utiliser',
     254        'noisette_titre_conditions' => 'Conditions météorologiques',
     255        'noisette_titre_previsions_24h' => 'Prévisions météorologiques 24h',
    244256        'nuit' => 'nuit',
    245257
     
    269281        'tendance_texte_rising' => 'en hausse',
    270282        'tendance_texte_steady' => 'stable',
     283        'titre_page_configurer' => 'Configuration du plugin Rainette',
    271284        'titre_service_apixu' => 'APIXU',
    272285        'titre_service_owm' => 'Open Weather Map',
    273286        'titre_service_weather' => 'weather.com&reg;',
    274287        'titre_service_weatherbit' => 'Weatherbit.io',
     288        'titre_service_wunderground' => 'Weather Underground',
    275289        'titre_service_wwo' => 'World Weather Online',
    276         'titre_service_wunderground' => 'Weather Underground',
    277         'titre_page_configurer' => 'Configuration du plugin Rainette',
    278290
    279291        // U
     
    282294        'unite_distance_metrique' => 'km',
    283295        'unite_distance_standard' => 'miles',
     296        'unite_population' => 'habitants',
    284297        'unite_pourcentage_metrique' => '%',
    285298        'unite_pourcentage_standard' => '%',
     
    292305        'unite_vitesse_metrique' => 'km/h',
    293306        'unite_vitesse_standard' => 'mph',
    294         'unite_population' => 'habitants',
    295307
    296308        // V
  • _plugins_/rainette/trunk/paquet.xml

    r108005 r108180  
    22        prefix="rainette"
    33        categorie="divers"
    4         version="3.3.3"
     4        version="3.4.0"
    55        etat="stable"
    66        compatibilite="]3.1.3;3.2.*]"
  • _plugins_/rainette/trunk/prive/squelettes/contenu/configurer_rainette.html

    r68608 r108180  
    33
    44[(#SET{configurer, [(#ENV{type-page})_[(#ENV{service, weather})]]})]
    5 [<div class='ajax'>(#FORMULAIRE_{#GET{configurer}})</div>]
     5[<div class='ajax'>(#FORMULAIRE_CONFIGURER_RAINETTE_SERVICE{#ENV{service, weather}})</div>]
  • _plugins_/rainette/trunk/rainette_fonctions.php

    r108077 r108180  
    368368
    369369/**
     370 * @param string        $mode
     371 * @param int           $periodicite
     372 *
     373 * @return array
     374 */
     375function rainette_lister_themes($service) {
     376
     377        $themes = array();
     378
     379        // Certains services proposent des thèmes d'icones accessibles via l'API.
     380        // C'est le cas de wunderground.
     381        if ($service == 'wunderground') {
     382                $cles = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k');
     383                foreach ($cles as $_cle) {
     384                        $themes[$_cle] = _T("rainette:label_theme_wunderground_${_cle}");
     385                }
     386        }
     387
     388        // TODO : gérer ici aussi les thèmes d'icones locaux.
     389
     390        return $themes;
     391}
     392
     393
     394/**
    370395 * @param string $lieu
    371396 * @param string $mode
     
    427452                $extras['credits'] = $configuration['credits'];
    428453                $extras['config'] = array_merge(
    429                         parametrage_normaliser($service, $configuration['defaut']),
     454                        parametrage_normaliser($service, $configuration['defauts']),
    430455                        array('source' => normaliser_configuration_donnees($mode, $configuration['donnees']))
    431456                );
  • _plugins_/rainette/trunk/services/apixu.php

    r108135 r108180  
    2020$GLOBALS['rainette_apixu_config']['service'] = array(
    2121        'alias'   => 'apixu',
    22         'defauts' => array(
    23                 'inscription' => '',
    24                 'unite'       => 'm',
    25                 'condition'   => 'apixu',
    26                 'theme'       => '',
    27         ),
     22        'nom'     => 'APIXU',
    2823        'credits' => array(
    2924                'titre' => 'APIXU',
    3025                'logo'  => 'apixu.png',
    3126                'lien'  => 'https://www.apixu.com/',
     27        ),
     28        'termes'         => array(
     29                'titre' => 'Terms and Conditions',
     30                'lien' => 'https://www.apixu.com/terms.aspx'
     31        ),
     32        'enregistrement' => array(
     33                'titre' => 'Signup',
     34                'lien' => 'https://www.apixu.com/signup.aspx',
     35                'taille_cle' => 32
     36        ),
     37        'offres'         => array(
     38                'titre' => 'Pricing',
     39                'lien' => 'https://www.apixu.com/pricing.aspx',
     40                'limites' => array(
     41                        'month' => 5000
     42                ),
    3243        ),
    3344        'langues' => array(
     
    7384                'defaut'      => 'en'
    7485        ),
    75         'limites' => array(
    76                 'month' => 5000
     86        'defauts' => array(
     87                'inscription' => '',
     88                'unite'       => 'm',
     89                'condition'   => 'apixu',
     90                'theme'       => '',
    7791        )
    7892);
  • _plugins_/rainette/trunk/services/owm.php

    r108073 r108180  
    2222$GLOBALS['rainette_owm_config']['service'] = array(
    2323        'alias'   => 'owm',
    24         'defauts' => array(
    25                 'inscription' => '',
    26                 'unite'       => 'm',
    27                 'condition'   => 'owm',
    28                 'theme'       => '',
    29         ),
     24        'nom'     => 'OpenWeatherMap',
    3025        'credits' => array(
    3126                'titre'       => null,
    3227                'logo'        => null,
    3328                'lien'        => 'http://openweathermap.org/',
     29        ),
     30        'termes'         => array(
     31                'titre' => 'Terms of service',
     32                'lien' => 'http://openweathermap.org/terms'
     33        ),
     34        'enregistrement' => array(
     35                'titre' => 'Members',
     36                'lien' => 'https://home.openweathermap.org/users/sign_up',
     37                'taille_cle' => 32
     38        ),
     39        'offres'         => array(
     40                'titre' => 'Price',
     41                'lien' => 'https://openweathermap.org/price',
     42                'limites' => array(
     43                        'minute'      => 60
     44                ),
    3445        ),
    3546        'langues' => array(
     
    5768                'defaut'      => 'en'
    5869        ),
    59         'limites' => array(
    60                 'minute'      => 60
     70        'defauts' => array(
     71                'inscription' => '',
     72                'unite'       => 'm',
     73                'condition'   => 'owm',
     74                'theme'       => '',
    6175        )
    6276);
  • _plugins_/rainette/trunk/services/weather.php

    r108073 r108180  
    1919$GLOBALS['rainette_weather_config']['service'] = array(
    2020        'alias'   => 'weather',
     21        'nom'     => 'weather.com&reg;',
     22        'credits'        => array(
     23                'titre' => 'weather.com&reg;',
     24                'logo'  => null,
     25                'lien'  => 'http://www.weather.com/',
     26        ),
     27        'termes'         => array(),
     28        'enregistrement' => array(),
     29        'offres'         => array(
     30                'limites' => array()
     31        ),
     32        'langues' => array(
     33                'disponibles' => array(),
     34                'defaut'      => 'en'
     35        ),
    2136        'defauts'        => array(
    2237                'inscription' => '',
     
    2439                'condition'   => 'weather',
    2540                'theme'       => '',
    26         ),
    27         'credits'        => array(
    28                 'titre' => null,
    29                 'logo'  => null,
    30                 'lien'  => 'http://www.weather.com/',
    31         ),
    32         'langues' => array(
    33                 'disponibles' => array(),
    34                 'defaut'      => 'en'
    35         ),
    36         'limites' => array()
     41        )
    3742);
    3843
  • _plugins_/rainette/trunk/services/weatherbit.php

    r108135 r108180  
    2828$GLOBALS['rainette_weatherbit_config']['service'] = array(
    2929        'alias'   => 'weatherbit',
    30         'defauts' => array(
    31                 'inscription' => '',
    32                 'unite'       => 'm',
    33                 'condition'   => 'weatherbit',
    34                 'theme'       => '',
    35         ),
     30        'nom'     => 'Weatherbit.io',
    3631        'credits' => array(
    3732                'titre' => 'Weatherbit API',
    3833                'logo'  => '',
    3934                'lien'  => 'https://www.weatherbit.io/',
     35        ),
     36        'termes'         => array(
     37                'titre' => 'Terms and Conditions',
     38                'lien' => 'https://www.weatherbit.io/terms'
     39        ),
     40        'enregistrement' => array(
     41                'titre' => 'Sign up for the Weatherbit API!',
     42                'lien' => 'https://www.weatherbit.io/account/create',
     43                'taille_cle' => 32
     44        ),
     45        'offres'         => array(
     46                'titre' => 'Affordable Weather API plans',
     47                'lien' => 'https://www.weatherbit.io/pricing',
     48                'limites' => array(
     49                        'hour' => 75
     50                ),
    4051        ),
    4152        'langues' => array(
     
    7889                'defaut'      => 'en'
    7990        ),
    80         'limites' => array(
    81                 'hour' => 75
     91        'defauts' => array(
     92                'inscription' => '',
     93                'unite'       => 'm',
     94                'condition'   => 'weatherbit',
     95                'theme'       => '',
    8296        )
    8397);
  • _plugins_/rainette/trunk/services/wunderground.php

    r108073 r108180  
    2828$GLOBALS['rainette_wunderground_config']['service'] = array(
    2929        'alias'   => 'wunderground',
    30         'defauts' => array(
    31                 'inscription' => '',
    32                 'unite'       => 'm',
    33                 'condition'   => 'wundergound',
    34                 'theme'       => 'a',
    35         ),
     30        'nom'     => 'Weather Underground',
    3631        'credits' => array(
    37                 'titre'       => null,
     32                'titre'       => 'Weather Underground',
    3833                'logo'        => 'wunderground.png',
    3934                'lien'        => 'http://www.wunderground.com/',
     35        ),
     36        'termes'         => array(
     37                'titre' => 'Terms and Conditions of use',
     38                'lien' => 'https://www.wunderground.com/weather/api/d/terms.html'
     39        ),
     40        'enregistrement' => array(
     41                'titre' => 'Join Weather Underground',
     42                'lien' => 'https://www.wunderground.com/signup?mode=api_signup',
     43                'taille_cle' => 16
     44        ),
     45        'offres'         => array(
     46                'titre' => 'Pricing',
     47                'lien' => 'https://www.wunderground.com/weather/api/d/pricing.html',
     48                'limites' => array(
     49                        'day'         => 500,
     50                        'minute'      => 10
     51                )
    4052        ),
    4153        'langues' => array(
     
    118130                'defaut'      => 'EN'
    119131        ),
    120         'limites' => array(
    121                 'day'         => 500,
    122                 'minute'      => 10
     132        'defauts' => array(
     133                'inscription' => '',
     134                'unite'       => 'm',
     135                'condition'   => 'wundergound',
     136                'theme'       => 'a',
    123137        )
    124138);
  • _plugins_/rainette/trunk/services/wwo.php

    r108073 r108180  
    2020$GLOBALS['rainette_wwo_config']['service'] = array(
    2121        'alias'   => 'wwo',
    22         'defauts' => array(
    23                 'inscription' => '',
    24                 'unite'       => 'm',
    25                 'condition'   => 'wwo',
    26                 'theme'       => '',
    27         ),
     22        'nom'     => 'World Weather Online',
    2823        'credits' => array(
    2924                'titre'       => 'Free local weather content provider',
    3025                'logo'        => null,
    3126                'lien'        => 'http://www.worldweatheronline.com/',
     27        ),
     28        'termes'         => array(
     29                'titre' => 'API Terms and Conditions',
     30                'lien' => 'https://developer.worldweatheronline.com/api/api-t-and-c.aspx'
     31        ),
     32        'enregistrement' => array(
     33                'titre' => 'Signup',
     34                'lien' => 'https://developer.worldweatheronline.com/signup.aspx',
     35                'taille_cle' => 32
     36        ),
     37        'offres'         => array(
     38                'titre' => 'Premimum API Pricing',
     39                'lien' => 'https://developer.worldweatheronline.com/api/pricing.aspx',
     40                'limites' => array(
     41                        'day'         => 500
     42                ),
    3243        ),
    3344        'langues' => array(
     
    7384                'defaut'      => 'en'
    7485        ),
    75         'limites' => array(
    76                 'day'         => 500
     86        'defauts' => array(
     87                'inscription' => '',
     88                'unite'       => 'm',
     89                'condition'   => 'wwo',
     90                'theme'       => '',
    7791        )
    7892);
Note: See TracChangeset for help on using the changeset viewer.