This is an old revision of the document!
Version 1, discussion dédiée sur le forum
La fonctionnalité de notification existe depuis la branche 1.2. Le mail est la méthode utilisée pour notifier l'ajout d'un commentaire ou l'upload d'un nouvel élément. Une entrée récente dans l'outil de suivi de bogue et de demande d'évolution décrit l'origine de cette spécification.
La notification est très peu présente en branche 1.4 et reste une fonctionnalité réservée aux administrateurs : nouveaux commentaires à valider et images uploadées à valider. La notification doit s'étendre à tous les utilisateurs, avec des informations différentes selon chaque utilisateurs.
En prenant en compte les permissions de chaque utilisateur (chaque utilisateur n'accède qu'à une liste de N catégories parmi M, M étant supérieur ou égal à N), les informations à notifier sont les suivantes :
Pour un administrateur, les informations supplémentaires sont :
Le mail n'est pas très commode pour notifier les utilisateurs, pour plusieurs raisons :
mail()
pas toujours présenteUne tendance actuelle du web est la syndication des informations sous forme de flux RSS. Cette métode est généralement utilisée pour publier des articles, mais elle peut s'étendre à bien d'autre utilisations. PhpWebGallery pourrait l'utiliser pour gérer la notification.
Comme décrit précédemment, les informations notifiées dépendent des permissions de l'utilisateur : si user1 accède à la catégorie privée cat1 mais que user2 n'y accède pas, alors seul user1 pourra être notifié des informations concernant cat1. Le flux RSS dépend donc de l'utilisateur qui s'y connecte.
Mon niveau (celui de Pierrick) de connaissance actuelle me laisse penser que l'authentification sur un flux RSS est possible mais pas supporté par tous les navigateurs. Il est donc préférable d'authentifier l'utilisateur par une variable dans l'URL. L'identifiant de l'utilisateur n'est pas suffisant en terme de sécurité. A l'image d'un identifiant de session, qui lie temporairement une connexion à un utilisateur, un identifiant de flux peut lier définitivement (pas temporaire en somme) une connexion à un utilisateur. Le caractère définitif de l'identifiant de flux implique un identifiant plus “long” (disons 50 caractères). Cela dit, le niveau de sécurité requit pour l'accès à un flux est largement moindre que celui d'une session. En effet, le flux ne permet que de notifier, il ne s'agit pas de présenter du contenu directement dans le flux.
L'information la plus intéressante est certainement : ”que s'est il passé depuis la dernière fois ?”. Ceci implique donc que PhpWebGallery retienne la date du dernier relevé pour chaque utilisateur enregistré.
La réponse à cette question n'est valable que si la même personne exploite le flux, ce qui ne peut pas être possible dans le cas des utilisateurs qui parcourent la galerie anonymement. Il faut prévoir un mécanisme de notification par période fixe. Par exemple, si la période est fixée à 1 jour, à chaque requête, le flux retournera 10 blocs d'informations : ”nouveautés entre le 1er juillet 2005 00:00 et le 1er juillet 2005 23:59”, ”nouveautés entre le 2 juillet 2005 00:00 et le 2 juillet 2005 23:59”, etc.
L'inconvénient concernant la méthode de fréquence fixe, c'est que les nouvelles informations ne peuvent être notifiées qu'une fois la période en cours terminée. Prenons l'exemple d'une période fixe de 1 jour. Si je questionne le flux à 15h00 et qu'il m'informe qu'il y a eu des nouveautés entre le 00:00 et 15:00, que doit envoyer le flux si je l'interroge à nouveau à 16:00 ?
L'idéal serait que pour le choix de la fréquence (fixe ou selon le dernier relevé) soit possible pour chaque utilisateur, ainsi que la valeur de la période fixe lorsqe cette méthode est choisie (1 semaine, 1 jour, 1 heure).
La fonctionnalité de notification impose une plus grande précision sur la notion de temps. L'information date de mise à disposition d'un élément n'est précise qu'au jour près (le champ images.date_available est de type date
). Cette précision doit être descendu à la seconde près (type datetime
).
Un exemple devrait être suffisamment parlant :
titre (méthode fréquence variable) : nouveautés au 1er juillet 2005 15:42
titre (méthode fixe, période = 1 heure) : nouveautés entre le 1er juillet 2005 00:00 et le 1er juillet 2005 01:00
contenu :
Une fois notifié, l'utilisateur peut consulter les éléments récents de la galerie grâce aux pages “images récentes”, “catégories récentes” et la page des commentaires. Une évolution serait de donner l'URL des catégories mises à jour par exemple, mais c'est secondaire.