Skip to content
  • rastapopoulos@spip.org's avatar
    Importation du plugin "Notifications avancées". · 86c99904
    rastapopoulos@spip.org a rédigé
    Le but de ce plugin est de remplacer l'ancien "Notifications", en mieux, plus générique, plus extensible, etc. Pour l'instant il est dans un plugin séparé, car il manque encore des choses pour reproduire ce qui existait (mais ça sait le faire et bien plus encore).
    
    Avec ce plugin, on peut :
    - définir des modes d'envois, seul l'email est installé ici
    - abonner explicitement des utilisateurs à des notifications (dans une table)
    - pour chaque notifications, un utilisateur peut définir quel mode d'envoi il préfère (en tout cas c'est prévu dans la table)
    - blacklister explicitement des utilisateurs pour une notifications (dans la même table), ce qui permet de ne pas recevoir de notifications pour une où on serait destinataire par défaut
    - faire une notification uniquement avec un squelette notifications/truc.html (mais dans ce cas il n'y a pas de destinataires par défaut, il faut donc y abonner des gens explicitement)
    - la forme "notifications/patate_truc.html" est reconnu, donc dans le contexte du squelette on a automatiquement "id_patate=..."
    - définir des destinataires par défaut pour une notification avec une fonction "notifications_truc_destinataires($id, options)", doit renvoyer un tableau avec soit des identifiants d'auteurs, soit une info de contact (le mail par ex)
    - définir trois formats pour une notification : "truc.html" pour le texte normal, "truc_html.html" pour le format HTML, et "truc_court.html" pour un format court du style SMS ou Microblog.
    - définir ces trois contenus aussi dans un fonction PHP si on a besoin d'un truc plus complexe, dans une fonction "notifications_truc_contenu($id, $options, $destinataire)". Cette fonction doit renvoyer soit un tableau contenu avec comme clés possibles "texte", "html" et "court", soit une string, qui sera alors utilisée pour le texte normal
    - définir une fonction de "préférences" pour une notification, dans "notifications_truc_preferences($id, $options, $preferences)". Cette fonction reçoit les préférences de l'utilisateur qui sont stockés dans la table des abonnés explicites. Elle doit renvoyer true ou false suivant que les préférences de cet abonné indiquent qu'il doit recevoir la notif ou pas. Dans la table, les préférences sont stockées dans un seul champ dans un tableau sérialisé. Pour l'instant il n'y a pas d'interface automatique pour gérer les préférences, c'est aux devs de faire leurs formulaires. À terme le but est de déclarer les préférences d'une notification dans un fichier YAML, avec des Saisies, donc possibilité de générer automatiquement des formulaires de config.
    
    Et j'oublie sûrement encore des choses !
    86c99904