From 6c995db5941053cf7d6fd0d2359c7968ca48f506 Mon Sep 17 00:00:00 2001 From: Eric Lupinacci <eric@smellup.net> Date: Sat, 25 Nov 2023 19:31:18 +0100 Subject: [PATCH] =?UTF-8?q?Oups,=20il=20manquait=20la=20prise=20en=20compt?= =?UTF-8?q?e=20de=20la=20langue=20dans=20les=20noisettes.=20Cetet=20fois?= =?UTF-8?q?=20tout=20est=20=C3=A0=20jour.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/rainette_fr.php | 7 ++- noisettes/meteo_conditions-preview.html | 1 + noisettes/meteo_conditions.html | 9 ++-- noisettes/meteo_conditions.yaml | 64 ++++++++++++++++--------- noisettes/meteo_previsions-preview.html | 3 +- noisettes/meteo_previsions.html | 7 +-- noisettes/meteo_previsions.yaml | 11 ++++- paquet.xml | 2 +- rainette_fonctions.php | 9 ++-- saisies/modele_24h.html | 12 ----- saisies/modele_meteo.html | 16 +++++++ 11 files changed, 92 insertions(+), 49 deletions(-) delete mode 100644 saisies/modele_24h.html create mode 100644 saisies/modele_meteo.html diff --git a/lang/rainette_fr.php b/lang/rainette_fr.php index 9637a36..9020017 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 45507fb..149b296 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 cc9892d..6ff0baa 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 4412622..51c83b8 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 ccea1e4..d614711 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 bc81d40..037daf9 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 244b195..8a9fc08 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 7c778c4..6f4f3ea 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 1385936..48881ef 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 0262785..0000000 --- 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 0000000..1772cc4 --- /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> -- GitLab