Dernière publication:02/11/2021à 14:23LaurenceAumeunier
Le plugin Front Notification apporte un nouveau type de contenu "Flash infos" permettant de faciliter l'intégration d'alertes, notifications, flash infos dans les pages du site.
Le type "Flash info" est composé des champs suivants:
un titre (title)
un texte court simple (text)
un texte riche (content)
une date de début (start-date)
une date de fin (end-date)
un boolean pour masquer les dates (hide-date)
Le plugin fournit également un helper JS pour intégrer les flash infos sous forme de popup ou de bannière.
Le helper permet d'afficher la ou les alertes une par une.
Il peut intégrer des boutons "J'ai lu" et "Me rappeler plus tard":
"J'ai lu" : permet de stocker en localStorage (en mode anonyme) ou dans les préférences utilisateurs (en mode connecté) que l'info a été lue qu'elle n'a plus besoin d'être affichée à l'utilisateur. Affiche l'info suivante si il y en a une, sinon ferme la popup ou bannière
"Me rappeler plus tard": Affiche l'info suivante si il y en a une, sinon ferme la popup ou bannière. L'info sera à nouveau afficher à l'utilisateur lors de sa prochaine visite (ou si il rafraichit la page)
Exemples d'intégration
Définition du filtre
On définira un filtre (inputdata) dans le ou les templates devant afficher les flash infos (fichier filters/default.xml des gabarits).
Par exemple:
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
Le filtre ci-dessus permet de remonter l'ensemble des flash infos étiquetés "Flash info bloquante", triés par date de début, dont la date de début est inférieur à la date du jour et la date de fin supérieure à la date du jour.
Les droits de l'utilisateur courant sont pris en compte avec <handle-user-access>true</handle-user-access>, il est donc possible de cibler les infos à afficher en fonction du groupe de l'utilisateur par exemple (via la gestion des droits Ametys). Attention à n'utiliser que sur des pages à accès limité !
Intégration HTML
Le HTML pour afficher un flash info n'est pas imposé.
Pour utiliser le helper JS:
Importer le fichier <script type="text/javascript" src="{ametys:pluginResourceURL('front-notification', 'js/FlashInfo.js')}"></script>
chaque contenu doit être inséré à l'intérieur de la popup ou bannière, dans un <div> englobant avec l'attribut data-flashinfo-id contenant un identifiant unique. Utilisez par exemple {@id}@{@lastModifiedAt}
pour intégrer un bouton "Me rappeler plus tard" ajoutez onclick="AmetysFlashInfo.showLater()" sur l'élément cliquable
pour intégrer un bouton "J'ai lu" ajoutez onclick="AmetysFlashInfo.markAsRead()" sur l'élément cliquable
définissez les méthodes JS qui seront appelées pour cacher et afficher la bannière ou popup
enfin initialisez la popup ou bannière en appelant AmetysFlashInfo.initialize(selector, onShow, onHide, contextPath), où:
selector: selector jquery pour identifier la popup ou bannière contenant les infos flash
onShow: function JS qui sera appelée pour afficher la popup/bannière
onHide: function JS qui sera appelée pour cacher la popup/bannière
contextPath: à initialiser avec ametys:siteUriPrefix()
Exemple d'intégration sous forme d'une popup
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.