Blogging avec Yacs

Notification aux surfers anonymes

qui ont laissé une adresse email pour ce faire

Un des points mis le plus en avant par Jérémie est la notification aux surfers anonymes des modifications (réponses, ajout de fichier, etc.) sur les pages qu'ils ont commentés ou qu'ils veulent surveiller.

  1. il faut bien sur que le surfer fournisse une adresse email
  2. cette adresse doit être gardé en mémoire, comme si elle était celle d'un surfer membre du site.
  3. il faut une interface pour que le surfer puisse décider d'arrêter les notifications.
  4. il faut une interface pour que le surfer puisse surveiller une page sans toutefois y avoir contribué.

Mémorisation de la surveillance.

Actuellement le déclenchement des notifications suit ce chemin :

  • comments/edit.php : post le commentaire avec succès
  • article::touch() (ou section::touch...)
  • users::alert_watchers()
  • members::list_watchers_by_posts_for_anchor() : liste des personne à notifier.
  • users:alert() : autant de fois que de personne à notifier.

la requête dans la base pour connaitre les watchers est faite par list_watchers_by_posts_for_anchor(). C'est une requête sur la table members (liens de dépendance entre objets yacsiens) et users (membre du site).

l'enregistrement d'un membre comme watcher d'une page est fait par touch().

une solution pour mémoriser le surfer anonyme comme watcher d'une page est d'enregister son adresse email dans la table members (via touch())

le tuple aurait cette forme :

anchor : article:id (section|category)
member : email:toto@lajoie.fr
member_type : anonymous OU pseudo si fourni

il faut ensuite apprendre à list_watchers_by_post_for_anchors d'en faire un peut plus et de rechercher également les membres de l'ancre qui sont selon le canevas "email:" et sans être dans la table users.

demande de surveillance explicite

c'est simple, il suffit d'afficher le bouton "surveiller cette page aux anonyme", puis sur clic afficher un formulaire où il donne son adresse email (le top ergonomique: sans changer de page). Il faut aussi proposer aux membres distraits de se loger plutôt que de surveiller en tant qu'anonyme.

arrêter les notifications

proposer au surfer anonyme d'arreter les notifications de la page n'est pas facile, car on ne peut pas savoir qui surfe, à moins d'avoir par exemple mémorisé également son IP, qui pourait être placé dans le champ member_id de la table members.

il faudrait alors à chaque affichage d'une page, si le surfeur est anonyme, controler l'adresse IP, et si il est donné comme watcher, lui afficher la commande "arreter de surveiller la page".

sauf qu'il peut consulter d'un autre poste...

On peut aussi prévoir un formulaire pour supprimer toutes notifications du site. Cela peut être également le formulaire qui servira à se désinscrire de la newsletter.

mail confirmé ?

faut-il envoyer un mail avec lien de confirmation avant de notifier systématiquement une adresse invalide ?