Jump to content

Extension:WikiLove

From mediawiki.org
This page is a translated version of the page Extension:WikiLove and the translation is 100% complete.
Manuel des extensions MediaWiki
WikiLove
État de la version : stable
Implémentation Interface utilisateur
Description Facilite l'ajout des retours positifs sur les pages de discussion des utilisateurs
Auteur(s) Ryan Kaldari, Jan Paul Posma, Brandon Harris (Conception)
Dernière version 1.3.1
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
MediaWiki 1.27+
Modifie la base
de données
Oui
Tables wikilove_log
Licence Licence MIT
Téléchargement

  • $wgWikiLoveGlobal
  • $wgWikiLoveTabIcon
  • $wgWikiLoveLogging
Téléchargements trimestriels 22 (Ranked 103rd)
Traduire l’extension WikiLove sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

Wikilove est une extension conçue pour promouvoir l'expansion de WikiLove dans Wikipédia ainsi que dans les autres wikis. En particulier, il permet d'ajouter des récompenses, des cadeaux et des invitations sur les pages de discussion des utilisateurs aussi simplement qu'en cliquant sur quelques boutons.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé WikiLove dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLove
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'WikiLove' );
    
  • Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Si vous souhaitez utiliser les récompenses intégrées, vous devez avoir activé InstantCommons. Pour ce faire, ajoutez ceci à votre fichier LocalSettings.php :

$wgUseInstantCommons = true;

L'extension doit maintenant être active. Allez dans l'onglet d'édition de vos Préférences pour ouvrir l'interface.

Vous pouvez également utiliser ces options de configuration dans votre fichier LocalSettings.php :

  • $wgWikiLoveGlobal - activez l'extension pour tous les utilisateurs, en faisant sauter la préférence utilisateur (valeur par défaut: false)
    • Vous pouvez également activer le paramètre par défaut mais vous devez donner la possibilité à l'utilisateur de le désactiver (opt-out) en utilisant :
$wgDefaultUserOptions['wikilove-enabled'] = 1;
  • $wgWikiLoveTabIcon - utilisez une icône pour les habillages qui la prennent en charge (par exemple Vector) (valeur par défaut : true)
  • $wgWikiLoveLogging - permet de tracer les attributions de WikiLove (valeur par défaut : false); ceci crée automatiquement une table wikilove_log dans la base de données, que vous pouvez réutilser à des fins statistiques


Utilisation

Pour autoriser votre compte à utiliser WikiLove, allez dans l'onglet d'édition de vos Préférences et activez WikiLove dans Labs features (ou, dans certaines versions, sous Options Générales). In September 2022 this displays as "Enable showing appreciation for other users with the WikiLove tab".

Pour utiliser WikiLove, allez sur la page de discussion d'un utilisateur et cliquez sur l'icône en forme de coeur. Suivez ensuite les instructions qui vous seront données.

Configuration de base

Pour savoir comment personnaliser WikiLove pour un contributeur individuel (plutôt que pour le wiki entier), voir la documentation utilisateur.

Vous pouvez personnaliser les options pour votre propre wiki en modifiant la page MediaWiki:WikiLove.js. Sur cette page, vous pouvez modifier les paramètres de la même manière que vous le faites avec les options intégrées : defaultOptions.js. Voici quelques exemples de configurations WikiLove personnalisées :

Les options présentes en haut de defaultOptions.js ne représentent que quelques paramètres par défaut pour votre commodité. Si vous omettez certaines propriétés pour les types ou les sous-types, ces valeurs par défaut seront utilisées (defaultText, defaultBackgroundColor, defaultBorderColor, defaultImageSize, defaultImage). Ensuite vient la liste des types. Chaque type peut avoir les propriétés name (nécessaire) et icon (facultatif). De plus, un type peut avoir ou pas, une liste de sous-types auquel cas les propriétés supplémentaires seront attribuées au type lui-même.

Si le type possède des sous-types, ceux-ci sont listés dans un objet liste subtypes. Optionnel : le type peut aussi avoir la propriété select, qui représente le libellé au-dessus du menu déroulant. Chaque sous-type peut avoir les propriétés suivantes :

  • option - nom dans le menu déroulant
  • descr - Description du sous-type
  • header - Entête du message à ajouter, c'est à dire la partie qui sera entre == ... ==
  • title - Titre de la boîte à message
  • text - Texte de la boîte à message (voir ci-dessous pour les détails)
  • image - Image de la boîte à message
  • gallery - Galerie pour choisir une image (voir ci-dessous pour les détails)
  • fields - Tableau des champs que l'utilisatuer peut modifier; peut contenir les valeurs suivantes : header, title, image, message
  • imageSize - Taille de l'image (par exemple 100px)
  • backgroundColor - Couleur du fond (toute couleur CSS valide, par exemple #fdffe7 ou yellow)
  • borderColor - Couleur de la bordure (idem)

Si vous n'utilisez pas les sous-types, ces options (sauf les deux premières) doivent être ajoutées au type lui-même.

Dans les champs text et email (tout comme dans defaultText, mentionné ci-dessus), vous pouvez utiliser quelques codes qui seront substitués automatiquement :

  • $1 - Message de l'utilisateur
  • $2 - Titre
  • $3 - Nom de l'image
  • $4 - Taille de l'image
  • $5 - Couleur de fond
  • $6 - Couleur d ela bordure
  • $7 - Nom d'utilisateur du destinataire

Pour que ce soit plus facile à l'utilisateur de sélectionner les images, vous pouvez créer une galerie d'images prédéfinies. Pour cela créez une propriété gallery avec les propriétés suivantes :

  • imageList - Tableau de noms d'images
  • width - Largeur maximale des images de la galerie (en pixels); pour 3 images nous recommandons la valeur de 145 .
  • height - Hauteur maximale des images de la galerie (en pixels)
  • number - Nombre d'images aléatoires à afficher (optionnel); si absent, toutes les images sont affichées

Vous pouvez utiliser les images de Wikimedia Commons, comme récompense par défaut. Comme mentionné ci-dessus, vous devez activer InstantCommons pour cela.

Assurez-vous de commencer votre page MediaWiki:WikiLove.js par //<nowiki> et de la terminer par //</nowiki> afin que du code Wikitext quelconque (comme les signatures ou {{subst:foo}}), ne se retrouve pas expansé à l'intérieur du JavaScript.

Supprimer des types WikiLove

Si vous souhaitez simplement supprimer certains types WikiLove par défaut, vous pouvez les supprimer de l'objet $.wikiLoveOptions. Voici quelques exemples que vous pouvez utiliser dans la page MediaWiki:WikiLove.js de votre wiki :

// supprimer la l'étoile concernant divers actes d'amabilité, de la liste des décorations
delete $.wikiLoveOptions.types.barnstar.subtypes.kindness;
// supprimer le cheeseburger de la liste des aliments et des boissons
delete $.wikiLoveOptions.types.food.subtypes.cheeseburger;
// supprimer entièrement l'interface des chatons
delete $.wikiLoveOptions.types.kitten;

Ajouter de nouveaux types WikiLove

Voici comment ajouter un nouveau type de toutou :

$.wikiLoveOptions.types.puppy = {
	name: 'Puppy', // nom du type (s'affiche dans le menu des types)
	fields: [ 'header', 'message' ], // champs de saisie du formulaire
	header: 'You get a puppy!', // entête apparaissant au début du billet de la page de discussion (optionnel)
	text: '[[File:2009-08-16 Puppy at Duke East 1.jpg|left|150px]]\n$1\n\n~~'+'~~<br style="clear: both;"/>', // $1 est le message personnalisé
	icon: 'http://www.mysite.com/images/wikilove-icon-puppy.png' // s'affiche dans le menu des types
};

Voici un exemple pour ajouter un nouveau type de hérisson dans une galerie d'images à sélectionner :

$.wikiLoveOptions.types.hedgehog = {
	name: 'Hedgehogs', // nom du type (s'affiche dans le menu des types)
	fields: [ 'header', 'message' ], // champs de saisie du formulaire
	header: 'A hedgehog for you!', // entête apparaissant au début du billet de la page de discussion (optionnel)
	text: '[[$3|left|150px]]\n$1\n\n~~'+'~~\n<br style="clear: both"/>', // $3 est le nom de fichier de l'image, $1 est le message
	gallery: {
		imageList: [ 'Hedgehog1.jpg', 'Orizo5.jpg', 'Erinaceus europaeus LC0119.jpg' ],
		width: 145, // largeur maximale des images de la galerie
		height: 150, // hauteur maximale des images de la galerie
		number: 3 // nombre d'images aléatoires à afficher (optionnel)
	},
	icon: 'http://www.mysite.com/images/wikilove-icon-hedgehog.png' // s'affiche dans le menu des types

Voici un exemple pour ajouter un nouveau sous-type de falafel dans le type de nourriture existant :

$.wikiLoveOptions.types.food.subtypes.falafel = {
    fields: [ 'header', 'message' ], // champs de saisie du formulaire
    option: 'Falafel', // option présente dans la liste de sélection
    descr: 'Falafel is a popular Middle Eastern street food made from ground chickpeas or fava beans and topped with salads, vegetables, and sauces. It is typically served in a pocket of pita bread.',
    header: 'Some falafel for you!', // entête apparaissant au début du billet de la page de discussion (optionnel)
    image: 'Falafel award.png', // image pour l'élément
    imageSize: '120px' // taille pour l'affichage de l'image (optionnel)
};

Failles et problèmes

Si la page de discussion que vous essayez de modifier contient un mot qui a ensuite été ajouté à Special:SpamRegex, les tentatives d'utilisation de l'interface pour ajouter une étoile ou une autre récompense échoueront. C'est parce que la page ne peut pas être modifiée, car elle contient un mot interdit. Supprimer le mot de la page ou du filtre résoudra le problème.

Documentation API

WikiLove utilise une API wikilove spéciale pour poster les messages sur les pages de discussion des utilisateurs. L'API est une simple sur-couche englobant des API existantes. Si la page de discussion de l'utilisateur est une page Wikitext , c'est l'API edit qui est utilisée. S'il s'agit d'une page Flow, l'API flow sera utilisée. Et s'il s'agit d'une page LiquidThreads page, c'est l'API threadaction qui est utilisée.

Pour appeler l'API, utilisez le paramètre action=wikilove.

Paramètres :

title
Titre de l'utilisateur ou de sa page de discussion à qui le WikiLove sera envoyé (obligatoire)
text
Wikicode brut à ajouter à la nouvelle section (obligatoire)
message
Message actuel que l'utilisateur a entré; à des fins de trace (n'inclut pas l'image ni la mise en forme HTML)
token
Jeton de modification. Vous pouvez en recevoir un en utilisant prop=info (nécessaire)
subject
Entête du sujet de la section de la nouvelle page (obligatoire)
type
Type de WikiLove (pour les statistiques); ceci correspond à un type sélectionné dans le menu de gauche, suivi d'un sous-type optionnel (par exemple barnstar-normal ou kitten) (optionnel)
email
Contenu du message courriel facultatif à envoyer à l'utilisateur

Exemple :

 api.php?action=wikilove&title=User:Dummy&text=Love&subject=Hi&token=%2B\

Architecture de la version 1.0

dialogue WikiLove après le premier chargement
dialogue WikiLove après avoir choisi une catégorie de récompenses
dialogue WikiLove après avoir écrit les détails pour une récompense
dialogue WikiLove en mode 'aperçu'
Survol du volet de sélection des récompenses

Ce document décrit l'architecture et le comportement du système WikiLove d'observations positives pour Wikipédia. Cet outil est conçu pour promouvoir la diffusion de WikiLove dans Wikipédia. Plus précisément, il ne fait que l'ajout de prix et de cadeaux aux pages de discussion des utilisateurs en cliquant simplement sur quelques boutons.

Explications

Wikipédia, en tant que communauté, dispose de plusieurs mécanismes pour indiquer le mécontentement ou pour fournir des commentaires « négatifs » à ses utilisateurs. Certains gadgets, tels que Twinkle, sont fortement conçus pour avertir, bloquer et revenir en arrière.

Parce que Wikipedia a besoin de renforts positifs, particulièrement pour les nouveaux utilisateurs, il est souhaité orienter le système uniquement vers les retours positifs.

Utilisation d'un style fantaisiste

Le système a un style lourd de fantaisie dans sa conception. Ceci est intentionnel et vise à se rapprocher des attentes des utilisateurs des sites Web modernes. De plus, tout le principe des « récompenses » est en soi fantasque (par exemple, des gateaux et des chatons).

Ce style peut être abandonné en fonction des retours qu'en feront les utilisateurs.

Note sur la nomenclature

Certains types de modèles, tels que les modèles de bienvenue, ne sont pas des récompenses du point de vue technique.

Ce document utilise le terme « prix » de manière interchangeable avec « modèle ». Étant donné que le système est axé utilisateurs et n'est pas destiné directement à ceux qui sont expérimentés, une nomenclature orientée vers l'utilisateur a été utilisée.

Processus

Comportement du dialogue

Le dialogue WikiLove est modal. Le lancer (de n'importe où) le fera apparaître au-dessus du texte de la page. Il peut être supprimé d'un simple clic.

Le système WikiLove nécessite JavaScript.

L'utilisateur se verra d'abord présenté une courte série d'instructions faciles à comprendre et une liste des « catégories de prix » disponibles.

Lors de la sélection d'un type de récompense, l'utilisateur se voit présenter une section dans laquelle il peut ajouter des détails à la récompense (tels qu'un court message).

Notez que certaines catégories de récompenses (par exemple, les gateaux) n'auront pas de seconde étape de création de récompense et iront directement à "Aperçu".

L'utilisateur clique ensuite sur le bouton "Aperçu", qui charge un aperçu de le récompense afin qu'il puisse voir à quoi il ressemblera sur la page de discussion de l'utilisateur.

Une fois l'utilisateur satisfait, il peut cliquer sur le bouton Envoyer WikiLove. À ce stade, les appels AJAX à l'API du serveur sont déclenchés, ajoutant le modèle à la page de discussion de l'utilisateur.

Notification par courriel

Comme il est peu probable que la plupart des nouveaux utilisateurs sachent qu'ils ont des pages de discussion, ils peuvent ne pas savoir qu'ils ont reçu le WikiLove en question.

En conséquence, le serveur enverra un courriel au destinataire (s'il a fourni une adresse courriel) l'informant du WikiLove ainsi que de brèves instructions sur la façon d'accéder à sa page de discussion.

Configuration du site

Au départ, les prix qui peuvent être donnés doivent être définis dans le gadget lui-même. Si ce système est élevé à une extension, alors les noms des prix et les modèles doivent être définis dans le site LocalSettings.php.

Alternativement, ces informations peuvent être stockées dans la base de données. Une console d'administration sera nécessaire pour ajouter ou soustraire les récompenses et les catégories de récompenses disponibles.

Stockage des données

Dans un but statistique, chaque fois qu'une récompense est envoyée, les données sont tracées et placées dans la base de données. Une simple table écrite via l'API est tout ce dont on a besoin :

  • From User - Nom de l'utilisateur qui envoie la récompense
  • To User - Nom de l'utilisateur qui reçoit la récompense
  • Template - Nom du modèle récompensé
  • Timestamp - Date de l'attribution de la récompense
  • Award Text - Facultatif; texte de la récompense

Page Special:WikiLoveStatistics

À l'avenir, il devrait être possible de créer une page, Special:WikiLoveStatistics, qui pourrait être utilisée pour voir à quelle fréquence le système est utilisé ainsi que pour donner un aperçu de qui donne le plus d'amour, quelles récompenses sont les plus populaires, et qui reçoit le plus de récompenses.

Ceci permettra de connaître la santé de la communauté. Plus il y a de récompenses attribuées et meilleure est la santé.

Idées pour l'avenir

La phase deux de ce projet pourrait résulter en la création des liens Send WikiLove ajoutés dynamiquement aux signatures sur toutes les pages. Ceci permettrait d'envoyer plus facilement les WikiLove, directement à partir d'autres pages de discussion.

Voir aussi