Skip to content
Extraits de code Groupes Projets
Valider 77ab1900 rédigé par Eric Lupinacci's avatar Eric Lupinacci
Parcourir les fichiers

Ajout d'une option à code_meteo2icone() pour arrêter la recherche de l'icone...

Ajout d'une option à code_meteo2icone() pour arrêter la recherche de l'icone même si celui ci n"existe pas pour la période (periode_stricte).
Utilisé par Thèmes pour Rainette
parent 2245dc31
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -301,6 +301,7 @@ function metre_seconde2kilometre_heure(?float $vitesse_vent = null) { ...@@ -301,6 +301,7 @@ function metre_seconde2kilometre_heure(?float $vitesse_vent = null) {
* - transcodages : les tableaux de transcodages code / icone du service * - transcodages : les tableaux de transcodages code / icone du service
* - theme_origine : le type de thème parmi 'local', 'weather', 'wmo' (index de transcodage) * - theme_origine : le type de thème parmi 'local', 'weather', 'wmo' (index de transcodage)
* - theme_id : l'id du thème * - theme_id : l'id du thème
* - periode_stricte : indique qu'on ne cherche que l'icone de la période (défaut false)
* *
* @return string Le chemin de l'icone * @return string Le chemin de l'icone
*/ */
...@@ -319,7 +320,10 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string ...@@ -319,7 +320,10 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string
// Si le nom de l'icone est vide, c'est que contrairement à ce qui est prévu, le code météo est utilisé // Si le nom de l'icone est vide, c'est que contrairement à ce qui est prévu, le code météo est utilisé
// par une période qui n'est pas licite : on se rabat sur l'autre période // par une période qui n'est pas licite : on se rabat sur l'autre période
if ($nom_icone === '') { if (
($nom_icone === '')
and empty($parametres_icone['periode_stricte'])
) {
$periode_inverse = $periode === 1 ? 0 : 1; $periode_inverse = $periode === 1 ? 0 : 1;
$nom_icone = $transcodages[$code][$type_theme][$periode_inverse]; $nom_icone = $transcodages[$code][$type_theme][$periode_inverse];
} }
...@@ -337,8 +341,7 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string ...@@ -337,8 +341,7 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string
// un svg vide // un svg vide
$chemin_icone = icone_normaliser_chemin(_RAINETTE_ICONE_NOM_VIDE . '.svg'); $chemin_icone = icone_normaliser_chemin(_RAINETTE_ICONE_NOM_VIDE . '.svg');
} else { } else {
// L'icone na peut être fourni ou pas par le thème. Si non, on renvoie le na par défaut de Rainette // On teste l'existence pour le thème avec les extensions possibles
// -- on teste l'existence pour le thème avec les extensions possibles
$service_icone = $type_theme === 'local' ? $parametres_icone['service'] : $type_theme; $service_icone = $type_theme === 'local' ? $parametres_icone['service'] : $type_theme;
foreach ($extensions as $_extension) { foreach ($extensions as $_extension) {
$chemin_icone = icone_normaliser_chemin( $chemin_icone = icone_normaliser_chemin(
...@@ -350,8 +353,9 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string ...@@ -350,8 +353,9 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string
break; break;
} }
} }
// -- on renvoie le na par défaut car le thème n'en fourni pas
if (!$fichier_icone) { if (!$fichier_icone) {
// L'icone n'est pas fourni par le thème : on renvoie l'icone na par défaut ou l'icone vide
$chemin_icone = $nom_icone === _RAINETTE_ICONE_NOM_NA $chemin_icone = $nom_icone === _RAINETTE_ICONE_NOM_NA
? icone_normaliser_chemin("{$nom_icone}.svg") ? icone_normaliser_chemin("{$nom_icone}.svg")
: icone_normaliser_chemin(_RAINETTE_ICONE_NOM_VIDE . '.svg'); : icone_normaliser_chemin(_RAINETTE_ICONE_NOM_VIDE . '.svg');
...@@ -359,5 +363,7 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string ...@@ -359,5 +363,7 @@ function code_meteo2icone($code, int $periode, array $parametres_icone) : string
} }
// Construction du chemin complet de l'icone et retour. // Construction du chemin complet de l'icone et retour.
return !$fichier_icone ? find_in_path($chemin_icone) : $fichier_icone; return !$fichier_icone
? (empty($parametres_icone['periode_stricte']) ? find_in_path($chemin_icone) : '')
: $fichier_icone;
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter