Manuel:liste de suivi
Une liste de suivi (watchlist) est un ensemble de pages que l'utilisateur a sélectionnées afin de suivre leurs modifications. Les listes de suivi sont disponibles pour tous les utilisateurs connectés, et ont un impact supplémentaire sur les listes des modifications, tels que les modifications récentes. Plus généralement, la liste de suivi d'un utilisateur permet de sélectionner les modifications qui l'intéressent. Un titre n'a pas besoin d'exister pour être suivi.
La liste de suivi d'un utilisateur n'est pas disponible pour les autres sauf si elle est agrégée, comme le rapport des pages non suivies est disponible pour les utilisateurs privilégiés. Les utilisateurs sont libres de garder leurs listes de suivi privées ou de les partager avec d'autres pour aider à surveiller le vandalisme ou les modifications indésirables sur des pages spécifiques par exemple.
Suivre des pages
Les utilisateurs peuvent ajouter des pages à leur liste de suivi via le lien Suivre présent sur chaque page.
Dans l'habillage par défaut, cela peut être sous la forme d'un onglet d'action en haut de la page.
Lorsque le suivi d'AJAX est activé, une demande AJAX est utilisée pour ajouter le suivi et mettre à jour l'interface quand c'est possible.
Les pages peuvent également être ajoutées à la liste de suivi lors de l'édition et lors de certaines opérations, y compris le renommage et la suppression.
Dans ces cas, une case à cocher est mise à disposition lors de la confirmation de l'opération pour permettre de gérer le suivi.
Ce comportement peut aussi être personnalisé ultérieurement via l'onglet Liste de suivi dans Special:Preferences.
Depuis MediaWiki 1.35, vous pouvez choisir de suivre une page pendant un temps donné.
Pour cela, $wgWatchlistExpiry doit être activé.
L'option est alors disponible lors de la modification ou de la sélection du suivi de la page via le lien Suivre ou action=watch.
Le temps avant expiration est disponible lors de l'édition et peut être personnalisé via le message système MediaWiki:Watchlist-expiry-options.
Il est également possible d'ajouter simultanément plusieurs pages à la liste de suivi avec l'éditeur de liste de suivi en mode brut.
Ne plus suivre les pages
La suppression d'une page de la liste de suivi peut être faite de la même manière que l'ajout; lorsque vous visualisez une page à lire, le lien Suivre est remplacé par un lien Ne plus suivre qui, lorsqu'il est cliqué, supprime la page de la liste de suivi.
Comme pour le suivi, ceci utilise une requête AJAX quand c'est possible.
Il est également possible de supprimer des pages de la liste de suivi en utilisant l'éditeur de la liste de suivi soit en mode normal ou en mode brut, les deux sont décrits ci-après.
Modifier la liste de suivi
L'éditeur de listes de suivi fournit plusieurs modes pour gérer le contenu de la liste de suivi. Les utilisateurs peuvent supprimer plusieurs éléments de leur liste de suivi en même temps, ils peuvent effacer toute la liste et modifier une liste brute de pages suivies.
Mode normal
L'éditeur de liste de suivi standard est accessible sur Special:Watchlist/edit et fournit la liste des titres suivis; les utilisateurs sélectionnent les titres à supprimer de la liste de suivi, et après avoir confirmé l'opération, c'est terminé.
Mode brut
Un moyen pratique pour modifier la liste de suivi est d'utiliser le mode de modification brute, accessible via Special:Watchlist/raw.
Il présente l'ensemble du contenu de la liste de suivi dans une liste textuelle simple, avec un titre par ligne, qui peut ensuite être modifié à souhait.
Cela fournit une méthode pratique pour ajouter (supprimer) en masse des éléments de la liste de suivi, et pour accéder à cette liste pour la copier sur d'autres wikis ou la partager avec d'autres utilisateurs.
Listes des modifications
Modifications récentes
La présence d'une page dans la liste de suivi la rendra plus évidente lorsqu'elle apparaît dans les listes des modifications, comme Special:Recentchanges et Special:Recentchangeslinked.
Liste de suivi
La page Special:Watchlist fournit aux utilisateurs une liste complète des modifications les plus récentes des pages de leur liste de suivi, que vous pouvez filtrer afin d'identifier des classes spécifiques de modifications.
Certains comportements de cette page peuvent être personnalisés via les préférences utilisateur, accessibles via l'onglet Liste de suivi dans Special:Preferences, y compris :
- durée de la représentation en liste de suivi, ou nombre maximum de modifications
- indique s'il faut se limiter à la dernière modification d'une page, ou développer et afficher toutes les modifications associées
- préférences de filtrage par robot, modifications mineures ou personnelles
Détails techniques pour l'implémentation
Le code de la liste de suivi est réparti sur plusieurs fichiers, notamment :
- /includes/actions
- WatchAction.php
- UnWatchAction.php
- /includes/user/User.php
- /includes/specials/SpecialEditWatchlist.php
- /includes/jobqueue/jobs/WatchlistExpiryJob.php
- /resources/src/mediawiki.page.watch.ajax.js
Cependant, tous les éléments ci-dessus utilisent WatchedItemStore.php pour effectuer des actions liées à la base de données qui est la classe de la couche stockage pour WatchedItems. La classe WatchedItem représente un objet simple observé (utilisateur, page (objet LinkTarget), horodatage de notification, période d'expiration).
WatchedItemStore s'occupe de :
- Ajouter une page ou une liste de pages à la liste de suivi
- Supprimer une page de la liste de suivi
- Compter les articles suivis
- Compter le nombre de notifications non lues
- Vérifier qu'une page est suivie
- Définir / Réinitialiser / Mettre à jour l'heure de notification
- Initialise / Actualise la date d'expiration des articles suivis
- Supprimer les pages expirées de la liste de suivi
- ...
La classe SpecialWatchlist.php est exécutée lorsque la classe Special:Watchlist est appelée.
Manière d'ajouter une page à une liste de suivi
- Requêtes d'utilisateurs pour ajouter une page à leur liste de suivi. Ceci peut se faire ainsi :
- en cliquant sur l'étoile
- en créant une page
- Vérifier
Suivre cette pageaprès avoir modifié - Modifier
Special:Watchlist/editouSpecial:Watchlist/raw
- La page et la page de discussion sont ajoutées à la table
watchlistpour l'utilisateur.
Quand une page est modifiée
- Une page est modifiée.
- Une accroche s'exécute et appelle la fonction updateNotificationTimestamp à partir de WatchedItemStore. Cela met à jour l'horodatage de notification pour la page, pour chacune des pages de la liste de suivi du lecteur, à l'exception de l'éditeur. (Cela se fait en joignant la page à la table
watchlistpour les utilisateurs). - L'horodatage de la notification pour la table
watchlistde l'utilisateur n'est plusNULLet donc, c'est maintenant une notification non lue. - Une tâche est mise en file d'attente en fonction de $wgWatchlistPurgeRate et les articles expirés sont retirés de la liste de suivi.
Quand une notification non lue est cliquée
- L'utilisateur clique sur une entrée non lue de la liste de suivi
- La fonction resetNotificationTimestamp est appelée à partir de WatchedItemStore avec l'utilisateur et le titre comme paramètres. Cela réinitialise la valeur de cette entrée à
NULL.
Suppression des éléments expirés dans la liste de suivi
- Après chaque modification une tâche est mise en file d'attente en fonction de la valeur de $wgWatchlistPurgeRate et les articles expirés sont retirés de la liste de suivi.
- Pour les petits wikis, un script est disponible pour être séquencé et qui supprimera de la liste de suivi les éléments qui ont expiré.
La liste de suivi a une API dont le code provient de APIQueryWatchlist.
Cette classe utilise intensément la classe WatchedItemQueryService.php .
Cette classe réalise les requêtes complexes relatives au code de Recentchanges et de Watchlist.
Lorsqu'un utilisateur charge Special:Watchlist, la table watchlist est jointe à la table recentchanges pour afficher les entrées à l'utilisateur.
C'est pourquoi nous ne pouvons pas avoir d'entrées dans la liste de suivi qui ont plus de 30 jours.
Modes spéciaux de la liste de suivi
- Liste de suivi étendue – C'est l'option dans les préférences à
Étendre la liste de suivi pour afficher toutes les modifications et pas uniquement les plus récentes. Cette option vous montre toutes les entrées de toutes les pages. Si vous choisissez de ne pas voir la version étendue, vous ne verrez qu'une seule entrée (la plus récente) pour chaque page. Dans les deux cas, il joint le tableaurecentchanges, mais dans ce dernier, il ne regarde que la révisionpage_latest. - Liste de suivi améliorée – C'est l'option
Grouper les modifications par page dans les modifications récentes et la liste de suivides Préférences. Le formatage est fait en JavaScript par la classe EnhancedChangesList.