Aujourd’hui une nouveauté un peu plus technique concernant les messages d’information et d’erreur qui peuvent être affichés sur une page de l’administration.
En effet, depuis la version 2.5, les messages informatifs sont dorénavant horodatés.
Pour la petite histoire nous avions pensé pendant un temps mettre en place une disparition progressive du message au bout de quelques secondes, mais cela contrevient aux règles d’accessibilité sur la rémanence des messages affichés (un délai minimal de 30 minutes est requis avant un effacement automatique).
C’est assez pratique à l’usage je trouve car il m’arrive de laisser en plan un billet en cours d’édition et d’y revenir un peu plus tard et je peux savoir à quelle heure la dernier enregistrement a été fait, et, le cas échéant, copier son contenu dans le presse-papier des fois que la session soit expirée[1] (il m’est parfois arrivé de perdre ainsi le contenu d’un billet), avant de cliquer sur le bouton Enregistrer
.
Si vous n’êtes pas développeur de plugin, vous pouvez arrêter ici la lecture de ce billet et reprendre une activité normale. Pour les autres, il y a une suite, ci-dessous.
Côté développement de plugin, vous pouvez profiter de ce nouveau mécanisme en utilisant la fonction dcPage::message()
. Cette fonction accepte plusieurs paramètres :
- Le texte du message (obligatoire).
- Un indicateur d’affichage de l’heure (facultatif,
true
par défaut). - Un indicateur indiquant s’il faut encadrer le message dans une
<div>
(facultatif,false
par défaut). Une classemessage
sera affectée soit à la<div>
si ce paramètre est àtrue
, soit au<p>
contenant le message dans le cas contraire. - Un indicateur indiquant s’il faut afficher le message (facultatif,
true
par défaut). Si ce paramètre est positionné àfalse
, le contenu HTML est simplement retourné au lieu d’être affiché.
Quelques exemples :
dcPage::message(__('Entry has been successfully created.'));
Qui affichera ce code (à l’image de celui affiché plus haut) :
<p class="message">12:24:38 : Billet créé avec succès.</p>
ou encore
dcPage::message(__('Entry has been successfully updated.'),false,true,true);
Qui retournera ce code HTML :
<div class="message"> <p>Le billet a été mis à jour avec succès.</p> </div>
Note
[1] Il faut savoir que si la session est expirée, parce que vous avez changé de connexion internet ou parce que le cookie est arrivé à expiration, vous serez renvoyé invariablement à l’accueil de l’administration dans le premier cas ou à la page d’authentification dans le second cas.
1 De lilou la teigne -
je me suis arrêtée au point un, merci mr
2 De Franck -
Des bises et un fanta citron steuplé !
3 De Philippe -
Héhé, j’ai lu la suite :) Et tu t’étonnes après d’avoir de nouvelles soumissions sur Dotaddict ?