Extension:WikiLove
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 | |
|
|
Téléchargements trimestriels | 18 (Ranked 122nd) |
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 dossierextensions/
.
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.
- 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 tablewikilove_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 :
- Wikipedia
- Wikimedia Commons
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éroulantdescr
- Description du sous-typeheader
- Entête du message à ajouter, c'est à dire la partie qui sera entre== ... ==
title
- Titre de la boîte à messagetext
- Texte de la boîte à message (voir ci-dessous pour les détails)image
- Image de la boîte à messagegallery
- 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 exemple100px
)backgroundColor
- Couleur du fond (toute couleur CSS valide, par exemple#fdffe7
ouyellow
)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'imageswidth
- Largeur maximale des images de la galerie (en pixels); pour 3 images nous recommandons la valeur de145
.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.
//<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
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
- WikiLove - Document d'architecture initial
- Extension:Thanks - remerciements raccourcis pour les modifications en utilisant Echo
- GiveCredit - Wiki MeatBall
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |
- Stable extensions/fr
- User interface extensions/fr
- MIT licensed extensions/fr
- Extensions in Wikimedia version control/fr
- BeforePageDisplay extensions/fr
- ChangeTagsListActive extensions/fr
- GetPreferences extensions/fr
- ListDefinedTags extensions/fr
- LoadExtensionSchemaUpdates extensions/fr
- SkinTemplateNavigation::Universal extensions/fr
- UserMergeAccountFields extensions/fr
- All extensions/fr
- Extensions used on Wikimedia/fr
- Extensions included in Miraheze/fr
- Extensions included in WikiForge/fr
- API extensions/fr