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; }
