diff --git a/lang/rainette_fr.php b/lang/rainette_fr.php index 9637a36039495822a5854bc1a9cd8c8ac6eab0a8..9020017483baa2bf160ba5d92bbb369610d79375 100644 --- a/lang/rainette_fr.php +++ b/lang/rainette_fr.php @@ -156,16 +156,21 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'noisette_description_previsions_24h' => 'Affichage des prévisions météorologiques 24h pour un service donné', '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.', '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®. Consultez la documentation pour connaitre la compatibilité avec le service choisi.', + 'noisette_explication_langue' => 'Si vide, la langue utilisée correspond à celle du contexte d\'affichage de la noisette', 'noisette_label_jour_1' => 'Premier jour des prévisions', + 'noisette_label_langue' => 'Langue du résumé météo', 'noisette_label_lieu' => 'Lieu', 'noisette_label_modele' => 'Modèle d’affichage à utiliser', 'noisette_label_nb_jours' => 'Nombre de jours affichés', 'noisette_label_service' => 'Service météorologique utilisé', 'noisette_label_titre_conditions' => 'Afficher un titre pour les conditions ?', 'noisette_label_titre_previsions' => 'Afficher un titre pour les prévisions ?', + 'noisette_option_langue_aucune' => '-- Langue du contexte --', 'noisette_preview_previsions' => 'Jours de prévisions : @nb_jours@ - Premier jour : @jour_1@.', + 'noisette_preview_langue' => 'Langue : @langue@', + 'noisette_preview_langue_aucune' => 'celle du contexte d\'affichage', 'noisette_titre_conditions' => 'Conditions météorologiques', - 'noisette_titre_previsions_24h' => 'Prévisions météorologiques 24h', + 'noisette_titre_previsions_24h' => 'Prévisions météorologiques', 'notice_liste_aucun_cache' => 'Aucun cache n’a encore été créé par le service.', 'nuit' => 'nuit', diff --git a/noisettes/meteo_conditions-preview.html b/noisettes/meteo_conditions-preview.html index 45507fb411602a8d46ee19bbf837d924113fa8c9..149b296b14a77f5e08133c2423ead74d93afc2fe 100755 --- a/noisettes/meteo_conditions-preview.html +++ b/noisettes/meteo_conditions-preview.html @@ -4,3 +4,4 @@ #SET{url_config, #URL_ECRIRE{configurer_rainette, service=#ENV{service}}} ] [[<a href="(#GET{url_config})">](#ENV{service}|rainette_afficher_service)[(#GET{url_config}|oui)</a>]][ - (#ENV{lieu}|typo)<br />] +[(#VAL{rainette:noisette_preview_langue}|_T{#ARRAY{langue, #ENV{langue, <:rainette:noisette_preview_langue_aucune:>}}})] diff --git a/noisettes/meteo_conditions.html b/noisettes/meteo_conditions.html index cc9892def96f24de9fd9301d10f75270620cc035..6ff0baaa880150c0cee334d499981abf4cff8678 100755 --- a/noisettes/meteo_conditions.html +++ b/noisettes/meteo_conditions.html @@ -3,12 +3,13 @@ ] [(#ENV{titre, non}|=={oui}|oui) <h2 class="h2"> - [(#RAINETTE_INFOS{#ENV{lieu}, ville, #ENV{service}})[, - (#RAINETTE_INFOS{#ENV{lieu}, pays, #ENV{service}})] - ] + [(#RAINETTE_INFOS{#ENV{lieu}, ville, #ENV{service}, #ENV{langue, #LANG}})[, + (#RAINETTE_INFOS{#ENV{lieu}, pays, #ENV{service}, #ENV{langue, #LANG}})] - ] <:rainette:meteo_conditions|spip_ucfirst:> </h2>] [(#MODELE{rainette_conditions, lieu=#ENV{lieu}, - sous_modele=conditions_tempsreel, - service=#ENV{service}})] + sous_modele=#ENV{modele}, + service=#ENV{service}, + langue=#ENV{langue, #LANG}})] <br class="clear" /> diff --git a/noisettes/meteo_conditions.yaml b/noisettes/meteo_conditions.yaml index 44126229b6b3241e8b9e80076c53c76475aefd8a..51c83b820e216fd816a6f67e05417385f146f643 100644 --- a/noisettes/meteo_conditions.yaml +++ b/noisettes/meteo_conditions.yaml @@ -4,26 +4,44 @@ icon: 'rainette-xx.svg' contexte: 'aucun' ajax: 'non' parametres: - - - saisie: 'input' - options: - nom: 'lieu' - label: '<:rainette:noisette_label_lieu:>' - explication: '<:rainette:noisette_explication_lieu:>' - - - saisie: 'service_meteo' - options: - nom: 'service' - label: '<:rainette:noisette_label_service:>' - defaut: '' - cacher_option_intro: 'oui' - filtre_actif: 'oui' - - - saisie: 'radio' - options: - nom: 'titre' - label: '<:rainette:noisette_label_titre_conditions:>' - defaut: 'non' - data: - oui: '<:item_oui:>' - non: '<:item_non:>' + contenu: + - + saisie: 'input' + options: + nom: 'lieu' + label: '<:rainette:noisette_label_lieu:>' + explication: '<:rainette:noisette_explication_lieu:>' + - + saisie: 'service_meteo' + options: + nom: 'service' + label: '<:rainette:noisette_label_service:>' + defaut: '' + cacher_option_intro: 'oui' + filtre_actif: 'oui' + - + saisie: 'radio' + options: + nom: 'titre' + label: '<:rainette:noisette_label_titre_conditions:>' + defaut: 'non' + data: + oui: '<:item_oui:>' + non: '<:item_non:>' + affichage: + - + saisie: 'modele_meteo' + options: + nom: 'modele' + mode: 'conditions' + label: '<:rainette:noisette_label_modele:>' + defaut: 'conditions_tempsreel' + cacher_option_intro: 'oui' + - + saisie: 'selecteur_langue' + options: + nom: 'langue' + type_lang: 'var_lang' + label: '<:rainette:noisette_label_langue:>' + explication: '<:rainette:noisette_explication_langue:>' + option_intro: '<:rainette:noisette_option_langue_aucune:>' diff --git a/noisettes/meteo_previsions-preview.html b/noisettes/meteo_previsions-preview.html index ccea1e442e4995461d2c590062a931a2b6a8d168..d61471176fa413727083347bf7fd4d7ff29f3143 100755 --- a/noisettes/meteo_previsions-preview.html +++ b/noisettes/meteo_previsions-preview.html @@ -4,4 +4,5 @@ #SET{url_config, #URL_ECRIRE{configurer_rainette, service=#ENV{service}}} ] [[<a href="(#GET{url_config})">](#ENV{service}|rainette_afficher_service)[(#GET{url_config}|oui)</a>]][ - (#ENV{lieu}|typo)<br />] -[(#VAL{rainette:noisette_preview_previsions}|_T{#ARRAY{nb_jours, #ENV{nb_jours}, jour_1, #ENV{jour_1}}})] \ No newline at end of file +[(#VAL{rainette:noisette_preview_previsions}|_T{#ARRAY{nb_jours, #ENV{nb_jours}, jour_1, #ENV{jour_1}}})<br />] +[(#VAL{rainette:noisette_preview_langue}|_T{#ARRAY{langue, #ENV{langue, <:rainette:noisette_preview_langue_aucune:>}}})] diff --git a/noisettes/meteo_previsions.html b/noisettes/meteo_previsions.html index bc81d401d3473badd48d280e542e1e03ce1b9f4c..037daf9366d17820c759eaccd2eb8bfe6d123297 100755 --- a/noisettes/meteo_previsions.html +++ b/noisettes/meteo_previsions.html @@ -3,8 +3,8 @@ ] [(#ENV{titre, non}|=={oui}|oui) <h2 class="h2"> - [(#RAINETTE_INFOS{#ENV{lieu}, ville, #ENV{service}})[, - (#RAINETTE_INFOS{#ENV{lieu}, pays, #ENV{service}})] - ] + [(#RAINETTE_INFOS{#ENV{lieu}, ville, #ENV{service}, #ENV{langue, #LANG}})[, + (#RAINETTE_INFOS{#ENV{lieu}, pays, #ENV{service}, #ENV{langue, #LANG}})] - ] <:rainette:meteo_previsions|spip_ucfirst:> </h2>] [(#MODELE{rainette_previsions, @@ -12,5 +12,6 @@ sous_modele=#ENV{modele}, premier_jour=#ENV{jour_1}, nombre_jours=#ENV{nb_jours}, - service=#ENV{service}})] + service=#ENV{service}, + langue=#ENV{langue, #LANG}})] <br class="clear" /> diff --git a/noisettes/meteo_previsions.yaml b/noisettes/meteo_previsions.yaml index 244b195d74403bc42e423a22478df8a17f75e1fe..8a9fc08edf9ea1269b02371681fda339af4a8a7b 100644 --- a/noisettes/meteo_previsions.yaml +++ b/noisettes/meteo_previsions.yaml @@ -43,9 +43,18 @@ parametres: non: '<:item_non:>' affichage: - - saisie: 'modele_24h' + saisie: 'modele_meteo' options: nom: 'modele' + mode: 'previsions' label: '<:rainette:noisette_label_modele:>' defaut: 'previsions_24h' cacher_option_intro: 'oui' + - + saisie: 'selecteur_langue' + options: + nom: 'langue' + type_lang: 'var_lang' + label: '<:rainette:noisette_label_langue:>' + explication: '<:rainette:noisette_explication_langue:>' + option_intro: '<:rainette:noisette_option_langue_aucune:>' diff --git a/paquet.xml b/paquet.xml index 7c778c4828e43479b6b3ba0c18e1a192e69ad953..6f4f3eadc6658f0b2f5e6f1724ece5b84f3e2a16 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,6 +1,6 @@ <paquet prefix="rainette" - version="4.2.2" + version="4.2.3" etat="stable" compatibilite="]3.2.999;4.2.*]" logo="rainette.svg" diff --git a/rainette_fonctions.php b/rainette_fonctions.php index 1385936d5da86f5bb696313f953d4db34ca6e4a6..48881ef7ed9979ec0d9048df96440385df5f1da9 100644 --- a/rainette_fonctions.php +++ b/rainette_fonctions.php @@ -469,7 +469,7 @@ function rainette_lister_services(?string $type_sortie = 'tableau', ?bool $filtr } /** - * Renvoie la liste des modèles disponibles correspodnant à un mode météo et une périodicité donnée. + * Renvoie la liste des modèles disponibles correspondant à un mode météo et une périodicité donnée. * La périodicité n'est disponible que pour les prévisions. * * @param null|string $mode Le type de données météorologiques demandé. @@ -483,16 +483,19 @@ function rainette_lister_modeles(?string $mode = 'conditions', ?int $periodicite // On lit les modèles suivant le mode choisi dans l'ensemble du site. // Ceux-ci sont toujours de la forme: // -- conditions_<complement>, - // -- previsions_<periodicite>h_<complement>, + // -- previsions_<periodicite>h_<complement>, la periodicité pouvant être vide et donc remplacé par un pattern décimal // -- infos_<complement>. if ($mode !== 'previsions') { $pattern = "{$mode}.*\\.html$"; } else { + $periodicite = $periodicite ?: '\\d+'; $pattern = "{$mode}_{$periodicite}h.*\\.html$"; } if ($fichiers = find_all_in_path('modeles/', $pattern)) { foreach ($fichiers as $_fichier) { - $modeles[] = strtolower(basename($_fichier, '.html')); + if (strpos(basename($_fichier, '.html'), $mode) === 0) { + $modeles[] = strtolower(basename($_fichier, '.html')); + } } } diff --git a/saisies/modele_24h.html b/saisies/modele_24h.html deleted file mode 100644 index 026278586ede69f7181f16927e3aa2300690d494..0000000000000000000000000000000000000000 --- a/saisies/modele_24h.html +++ /dev/null @@ -1,12 +0,0 @@ -[(#REM) Liste modèles de prévisions 24h disponibles - Parametres : - - class : classe(s) css ajoutes au select - - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"") - - cacher_option_intro : pas de premier option vide (defaut:"") -] -<select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"] > -[(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>] -<BOUCLE_modeles_24h(DATA) {source table, #VAL{previsions}|rainette_lister_modeles{24}}{par valeur}> - [<option value="#VALEUR"[(#VALEUR|=={#ENV{valeur,#ENV{defaut, previsions_24h}}}|oui) selected="selected"]>(#VALEUR)</option>] -</BOUCLE_modeles_24h> -</select> diff --git a/saisies/modele_meteo.html b/saisies/modele_meteo.html new file mode 100644 index 0000000000000000000000000000000000000000..1772cc4edfc011af68bf902041277a98d0cc7cf0 --- /dev/null +++ b/saisies/modele_meteo.html @@ -0,0 +1,16 @@ +[(#REM) Liste modèles de prévisions 24h disponibles + Parametres : + - mode : le mode météo, infos, conditions (défaut) ou previsions + - periodicite : 0 pour infos ou conditions, 24, 12, 6, 3 ,1 pour les prévisions + - class : classe(s) css ajoutes au select + - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"") + - cacher_option_intro : pas de premier option vide (defaut:"") +] +#SET{mode, #ENV{mode, conditions}} +#SET{periodicite, #ENV{periodicite, #NULL}} +<select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"] > +[(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>] +<BOUCLE_modeles_rainette(DATA) {source table, #GET{mode}|rainette_lister_modeles{#GET{periodicite}}}{par valeur}> + [<option value="#VALEUR"[(#VALEUR|=={#ENV{valeur,#ENV{defaut}}}|oui) selected="selected"]>(#VALEUR)</option>] +</BOUCLE_modeles_rainette> +</select>