web-dev-qa-db-fra.com

Comment gérer JImage avec un fichier image manquant

Aujourd'hui, mon site Web affichait des erreurs sur les utilisateurs finaux sur une seule page, car une image était manquante. C'est une image stockée dans jseblod et accessible à l'aide de la nouvelle JImage () de mon modèle.

Existe-t-il une directive sur la manière de traiter cette erreur? JImage génère (littéralement) au moins 3 erreurs différentes. Cela indique-t-il que je devrais simplement utiliser try {} catch blocks ou existe-t-il un moyen recommandé de gérer une image manquante?

2
jdog

Ouais, utiliser des exceptions de capture serait la meilleure idée à mon avis, j'utiliserais alors la fonction Joomla enqueueMessage pour afficher un message d'erreur d'utilisateur ami, comme ceci:

try
{
    // Try to do something with the image using 'JImage'
}
catch (Exception $e)
{
    // The image was missing
    JFactory::getApplication()->enqueueMessage(JText::_('MISSING_IMAGE'), 'error');

    // Error message = $e->getMessage();
    // I'd then most likely log the actual PHP error to a file using 'JLog'
}

J'espère que cela t'aides

1
Lodder

Vous avez quelques options, mais la solution la plus simple serait d’exécuter un ifexists sur le src avant d’exécuter jimage. C'est à dire:

Si (JFile :: existe ($ src)) {// Lancer jimage ici}

Vous pouvez également ajouter les images à un tableau et en exécuter une en fonction de votre sortie et de votre fonction.

2
tonypartridge