Notifications

Notices répétées, juil. 2020
Notices répétées

J’ai enfin trouvé pourquoi j’avais, de temps en temps, des notifications doublées, ou plutôt persistantes alors qu’elles devraient avoir disparues une fois affichées une première fois.

C’est directement lié à la façon dont les sessions sont gérées avec PHP et parce que les appels de leurs fonctions de gestion peuvent être imbriqués de façon inattendue, surtout si on a des processus parallèles qui tournent (je pense en particulier à tout ce qui est servi via des requêtes Ajax). Je ne vais pas détailler ici ça ne sert à rien.

Par contre, côté système de notification : « C’est génial, faut tout refaire ! »

Ou pour dire ça autrement, on ne peut pas s’appuyer sur les variables de session pour stocker temporairement les notifications en vue de les afficher ensuite, c’est trop aléatoire.

Il faut donc coder ça autrement et j’envisage d’utiliser une nouvelle table dédiée pour faire ça, table qui ferait le lien entre la session déjà stockée en base de données et les notifications associées.

La structure prévue de la table dc_notices est la suivante[1] :

  • notice_id : un identifiant unique
  • ses_id : l’identifiant de la session à laquelle est rattachée la notification, à relier (n → 1) avec son semblable dans la table dc_session.
  • type : type de notification (static[2], success, warning, error, message, …)
  • ts : timestamp de la notification
  • msg : contenu de la notification
  • format : format du contenu (text par défaut, html, …)
  • options : options spécifiques à la notification (avec/sans timestamp, …)

Le fonctionnement dans le reste de l’application ne changeant pas, il ne devrait pas y avoir de modifications à apporter en dehors de la façon de stocker/déstocker et de fournir les notifications en attente.

Une autre solution serait de reprendre le plugin notifyMe qui s’appuie sur les notifications possibles dans le navigateur, à condition que l’utilisateur les autorise et que Javascript soit actif. C’est peut-être trop réducteur d’un point de vue accessibilité.

Questions en suspens :

  • Le type de notification static concerne l’ordre d’affichage, est-ce que ça ne devrait pas être plutôt dans les options de la notification ?
  • Quid de la gestion de notice_id ? Incrémenté à l’infini ?
  • Est-ce qu’il y a moyen de faire autrement ?

Notes

[1] D’ailleurs, dc_notices ou dc_notice sans s à la fin ?

[2] Les notifications de ce type étant affichées en début de liste, avant les autres.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/14645

Haut de page