Petit bugs entre norme EXIF et PHP 8 dans le plugin Meow Lightbox

Petit bugs entre norme EXIF et PHP 8 dans le plugin Meow Lightbox

Tout en poursuivant ponctuellement la remise en place d’une série de post qui était toujours en monde « masqués », je suis tombé sur un problème récurrent dans une série de galerie photos affichées via le plugin Meow Gallery et Meow Lightbox dans mon Blog WordPress.

Il y a quelques mois j’avais fait quelques correctifs avec l’aide de ChatGPT sur ce plugin depuis le passage à PHP 8, cela aurait-il pu en être la cause ? Seul le Docteur GPT était capable de m’aider à comprendre le problème et assez vite, je pouvais comprendre qu’il s’agissait d’un soucis lié aux données EXIF contenues dans mes photos, tout spécialement celles de mon Google Nexus 5. Il semble en effet que certaines valeurs soit encodée avec une virgule pour définir la vitesse d’obturation alors qu’il aurait fallut un « . »

En affinant, je peux donc recevoir un code pour corriger cela dans le fichier situé : wp-content/plugins/meow-lightbox/classes/filters.php

function nice_shutter_speed( $shutter_speed ) {

// Sécurité : valeur vide ou invalide
if ( empty( $shutter_speed ) ) {
return '';
}

// Normalisation des décimales européennes (0,0125 → 0.0125)
if ( is_string( $shutter_speed ) ) {
$shutter_speed = str_replace( ',', '.', $shutter_speed );
}

$shutter_speed = floatval( $shutter_speed );

// Éviter division par zéro ou valeurs incohérentes
if ( $shutter_speed <= 0 ) {
return '';
}

$str = '';

if ( ( 1 / $shutter_speed ) > 1 ) {
$str .= '1/';
$value = 1 / $shutter_speed;

if ( number_format( $value, 1 ) == number_format( $value, 0 ) ) {
$str .= number_format( $value, 0, '.', '' );
} else {
$str .= number_format( $value, 0, '.', '' );
}
} else {
$str .= $shutter_speed . ' sec';
}

return $str;
}

Le Docteur de terminer par le retour suivant :

Ce que cette version corrige exactement
✔ accepte les anciens EXIF (0,01257)
✔ empêche toute division par zéro
✔ compatible PHP 7.x → 8.4
✔ ne modifie pas l’affichage attendu (1/80, 0.5 sec, etc.)
✔ aucun impact sur les images récentes

Pourquoi ça touche surtout les anciennes galeries Meow
Les anciens appareils / logiciels écrivaient les EXIF avec virgule
Les nouveaux utilisent un point
Meow Lightbox n’avait pas prévu ce cas
PHP 8 a rendu l’erreur fatale

️ Recommandation finale
Après modification :

Vide le cache (WP-Optimize, serveur, navigateur)
Recharge un ancien post avec galerie
Vérifie que la Lightbox s’ouvre bien

Vous aimerez aussi
Pour un blog plus véloce : Merci MeowApps
Pour un blog plus véloce : Merci MeowApps

Le monde du web d'aujourd'hui laisse bien peu de place à la vie de blog indépendant. Voilà maintenant 15 ans (Lire la suite)

Dans le code du thème pour ma mosaïque.
Dans le code du thème pour ma mosaïque.

Évidemment, pour que site web soit joli, cela m'oblige de temps en temps à mettre le nez dans le code (Lire la suite)

Opération : Blog censuré
Opération : Blog censuré

Depuis son lancement en 2006, j'ai gardé comme approche que ce blog serait un archive, une trace du passé en (Lire la suite)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.