A partir de la version 3.1 de UP, le traitement des messages d'erreurs évolue :
  • pour éviter  de perturber les visiteurs en affichant des messages sans réel intérêt pour eux, donnant une mauvaise image de votre site
  • pour envoyer immédiatement un email à l'administrateur du site pour le prévenir d'une anomalie

Pour vous informer d'une erreur ou d'une situation, UP utilise 3 méthodes :

  • le classique message d'erreur de Joomla en haut de page.
    Il est utilisé pour informer les rédacteurs d'une erreur de saisie dans un shortcode ou d'une ressource (js,css,ini) non trouvée ou incorrecte
  • un message inline à l'emplacement attendu pour le résultat d'une action.
    Il sert pour signaler aux visiteurs la raison de l'absence de résultat.
    Vous pouvez personnaliser le CSS pour l'accorder au style de votre site.
  • le message d'information de Joomla en haut de page.
    Son usage, peu fréquent par les administrateurs et rédacteurs du site, répond à une demande explicite dans un shortcode à l'aide d'une option info ou debug,

Les paramètres du plugin UP

2 nouveaux paramètres dans la configuration du plugin UP sont dédiés au traitement des erreurs

Param msg fr

1/ Statut du site

Permet d'adapter le traitement des erreurs selon que le site est ouvert au public ou en phase de conception.

Mode développement (inprod=0)

C'est le mode qui existe depuis la création de UP

  • tous les messages sont affichés
  • aucun email n'est envoyé
  • on force l'affichage des messages inline par un display:inline-block
Mode production (inprod=1)

Ce mode évite l'affichage des messages aux visiteurs du site.
L'administrateur du site sera prévenu par mail de l'incident lors du premier déclenchement.
Lors de la rédaction d'un article, le rédacteur sera toujours prévenu.

  • messages d'erreur en haut de page
    • non affiché sauf si l'article est en édition
    • une erreur dans un module est toujours masquée (détection du mode édition impossible)
    • un email est envoyé à la place du premier affichage (dans une langue)
  • messages inline
    • toujours affiché selon le style CSS défini dans paramètres du plugin, sauf si le texte est encadré par une balise span ou div.
    • si l'article est en édition, on force l'affichage par un display:inherit
    • un émail est envoyé si le message débute par @
  • messages d'information en haut de page
    • toujours affichés, car c'est une demande du rédacteur
    • un émail est envoyé si le message débute par @

2/ CSS messages inline

Ce paramètre permet d'adapter à votre site le style des messages affichés à l'emplacement attendu pour le résultat d'une action.
La valeur de cette option sera utilisée pour les propriétés class et style de la balise span contenant le message.
Comme il est d'usage avec UP, il est possible de mélanger des classes et des styles en les séparant par des points-virgules.

texte du message : texte
valeur du paramètre : bg-yellow;border:1px solid red;t-red
code généré : <span class="bg-yellow t-red" style="border:1px solid red">texte</span>

Vous pouvez mettre display:none pour les masquer, mais :

  • en mode développement, ils sont affichés par l'ajout d'une règle display:inherit 
  • en mode production, masqué, mais pour comprendre la situation, le texte du message sera visible dans le code source de la page.

Vous pourrez modifier le style d'un message selon les principes ci-dessous :

1/ si le message est encadré par des balises, elles sont utilisées à la place du paramètre.

texte du message : <div>texte rouge</div>
valeur du paramètre : bg-yellow;border:1px solid red;t-red
code généré : <div>texte rouge</div>

2/: un style sur une partie du message sera appliqué en complément de celui du paramètre..

texte du message : texte <span style="color:red">rouge</span>
valeur du paramètre : bg-yellow;border:1px solid red;t-red
code généré :      <span class="bg-yellow t-red" style="border:1px solid red">texte <span style="color:red">rouge</span></span>

Personnaliser le texte des messages

Le tableau ci-dessous liste l'origine des messages affichés par UP.

Type Emplacement  Personnalisable
En dur dans le code UP dans le code NON ou par surcharge du script PHP (déconseillé)
messages généraux de UP dossier up/language/en-GB/en-GB.plg_content_up.ini dossier up/language/en-GB/en-GB.plg_content_up.custom.ini
messages des actions dossier up/actions/xxx/up/en-GB.ini dossier up/actions/xxx/up/en-GB.custom.ini
option du shortcode shortcode renseigné par le rédacteur oui par nature

Pour modifier un message, il faut créer un fichier avec le suffixe .custom. Il n'est pas nécessaire de recopier tous les messages du fichier de base, seuls ceux à modifier sont indispensables.

Pour ajouter une nouvelle langue à UP, il faut dupliquer un fichier existant en modifiant le code pays. Tous les messages doivent être traduits.

Les emails

Un message est envoyé à l'administrateur du site dans 2 cas :

  • une erreur est détectée en l'absence d'un rédacteur pour l'article incriminé.
    note: une erreur dans un module n'envoie pas d'email
  • le texte d'un message inline ou d'information commence par le caractère @
    exemple: si le rédacteur d'une action "pdf-gallery" considère qu'un dossier peut être vide, il informe simplement le visiteur avec l'option "msg-no-file". Par contre, si cela n'est pas normal, il commence son message par le caractère @ pour être prévenu (le dossier a pu être supprimé ou déplacé).

Un message est envoyé UNE SEULE FOIS au premier déclenchement d'une erreur.

Une copie locale du message est stockée dans le dossier up/error

le fichier a la forme : id_up-no_action-les_35_premiers_caractères_du_message.

Exemple, le fichier up-39-34-lorem-Cette adresse met trop de temps pou.err contient

2023-07-10 09:22 
http://up-dev-310.test/demo/action-tab
------ MESSAGE ------
Cette adresse met trop de temps pour répondre : https://loripsum.net/api/2/decorate
------ OPTIONS ------
id = up-39-34
lorem = 2,decorate

1 - date et heure de la première détection de cette erreur.
2 - lien vers l'article sur le site
3,4 - la totalité du message
5 à fin - les options de l'action.

Suivi des erreurs

L'administrateur doit supprimer, en FTP, le fichier dans le dossier up/error quand l'anomalie est corrigée.

Cela permet de réactiver l'envoi d'un émail si l'erreur survient de nouveau.

Note: une action upgesterror est en préparation pour faciliter cette opération.

Info développeurs

pour utiliser le traitement des erreurs, vous disposer de 3 méthodes :

  • msg_error($text)
  • msg_inline($text)
    note : l'ancienne version info_debug($txt, $infoUP = true) est conservé pour compatibilité et utilisation par le script principal up.php
  • msg_info($text, titre='')

Pour récupérer le texte dans un fichier langage, on utilise la méthode trad_keyword($key, $str='')

La version 3.1 définit également 3 propriétés :

  • $this->inedit : true si l'article consulté est en édition
  • $this->inprod : true si le site est en production, false en développement (paramètre du plugin)
  • $this->cssmsg :  style css pour les messages inline (paramètre du plugin)

Quelques recommandations pour utiliser efficacement la gestion des erreurs

  • En production, après modification d'un article, ne quittez pas la fenêtre d'édition pour le vérifier.
    Utilisez la fonction "prévisualiser" de votre éditeur ou ouvrez-le dans un nouvel onglet de votre navigateur
  • Fermer toujours proprement l'édition d'un article.