Расширение:ВикиСимпатия

This page is a translated version of the page Extension:WikiLove and the translation is 40% complete.
Справка по расширениям MediaWiki
WikiLove
Статус релиза: стабильно
Реализация Пользовательский интерфейс
Описание Позволяет легко добавить положительный отзыв воздействия на страницу обсуждения участника
Автор(ы) Ryan Kaldari, Jan Paul Posma, Brandon Harris (дизайн)
Последняя версия 1.3.1
Политика совместимости Снэпшоты выходят вместе с MediaWiki. Мастер не имеет обратной совместимости.
MediaWiki 1.27+
Изменения в БД Да
Таблицы wikilove_log
Лицензия MIT License
Скачать

  • $wgWikiLoveGlobal
  • $wgWikiLoveTabIcon
  • $wgWikiLoveLogging
Ежеквартальные загрузки 24 (Ranked 112nd)
Переведите расширение WikiLove, если оно доступно на translatewiki.net
Проблемы Открытые задачи · Сообщить об ошибке

WikiLove is an extension designed to promote the spread of WikiLove within Wikipedia and possibly other wikis. Specifically, it makes adding awards, gifts, and invitations to user talk pages as simple as clicking a few buttons.

Установка

  • Скачайте и распакуйте файл(ы) в папку с названием WikiLove в вашей папке extensions/.
    Вместо этого разработчикам и соавторам кода следует установить расширение из Git, используя:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLove
  • Добавьте следующий код в конце вашего файла LocalSettings.php :
    wfLoadExtension( 'WikiLove' );
    
  • Выполните скрипт обновления, который автоматически создаст необходимые таблицы, используемые расширением.
  •   Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

If you want to use the built-in awards, you must have InstantCommons enabled. To enable this, add this to LocalSettings.php:

$wgUseInstantCommons = true;

The extension should now be active. Go to the editing tab in your preferences to turn on the interface.

Вы также можете использовать эти параметры конфигурации в LocalSettings.php:

  • $wgWikiLoveGlobal - включить расширение для всех пользователей, удалив предпочтения пользователя (по умолчанию: false)
    • Примечание: Вы также можете включить этот параметр по умолчанию, но при этом предоставить пользователям возможность отключить его (отказаться), используя:
$wgDefaultUserOptions['wikilove-enabled'] = 1;
  • $wgWikiLoveTabIcon - используйте значок для тем оформления, которые их поддерживают (например, Векторная) (по умолчанию: true)
  • $wgWikiLoveLogging - enable logging of giving of WikiLove (default: false); this automatically creates a database table wikilove_log which you can use for statistical queries
ВикиСимпатия 1.0 поддерживает MW 1.17+

Использование

To enable your account to use WikiLove, go to the editing tab in your preferences and turn on WikiLove under "Labs features" (or, in some versions, under "General options"). In September 2022 this displays as "Enable showing appreciation for other users with the WikiLove tab".

Чтобы использовать WikiLove, перейдите на страницу обсуждения пользователя и кликните на иконку в виде сердца. Следуйте указанным там инструкциям.

Дополнительные настройки

Чтобы узнать, как настроить ВикиСимпатию для отдельного редактора (а не для всей вики), см. пользовательскую документацию.

You can customize the options for your own wiki by editing the page MediaWiki:WikiLove.js. In here, you can change the configuration the same way as is done with the built-in options: defaultOptions.js. Here are some examples of custom WikiLove configurations:

The options at the top of defaultOptions.js are some default settings for your convenience. If you omit certain properties from types or subtypes, these defaults will be used (defaultText, defaultBackgroundColor, defaultBorderColor, defaultImageSize, defaultImage). Далее идёт список типов. Each type can have the properties name (required) and icon (optional). Furthermore, a type can have a list of subtypes, or not, in which case the additional properties will be assigned to the type itself.

If the type has subtypes, they are listed in an object list subtypes. Optionally, the type can also have the property select, which specifies the label above the dropdown menu. Each subtype can have the following properties:

  • option - название в выпадающем меню
  • descr - Описание подтипа
  • header - Header of the message that is being added, i.e. the part that will be between == ... ==
  • title - Заголовок окна сообщения
  • text - Текст окна сообщения (см. ниже для более подробной информации)
  • image - Изображение окна сообщения
  • gallery - Gallery for selecting an image (see below for details)
  • fields - Array of fields that the user can edit; can contain these values: header, title, image, message
  • imageSize - Размер изображения (например, 100px)
  • backgroundColor - Background color (any CSS valid color, e.g. #fdffe7 or yellow)
  • borderColor - Цвет рамки (тот же)

When not using subtypes, these options (except for the first two) should be added to the type itself.

In the text and email fields (as well as in defaultText, mentioned earlier), you can use a few codes that will be substituted automatically:

  • $1 - User message
  • $2 - Title
  • $3 - Image name
  • $4 - Image size
  • $5 - Background color
  • $6 - Border color
  • $7 - Username of the recipient

To make it easy for the user to select images, you can create a gallery with predefined images. For this, create a gallery property, which has the following properties:

  • imageList - Массив названий изображений
  • width - Maximum width of the images in the gallery (in pixels); for 3 images 145 is recommended
  • height - Maximum height of the images in the gallery (in pixels)
  • number - Number of random images to show (optional); if omitted all images are shown

You can use images from Wikimedia Commons, as the default awards do. Like mentioned before, you have to enable InstantCommons for this.

Be sure to start your MediaWiki:WikiLove.js page with //<nowiki> and end it with //</nowiki> so that any Wikitext code (such as signatures or {{subst:foo}}) doesn't get expanded within the JavaScript.

Удаление типов ВикиСимпатий

If you just want to remove some of the default WikiLove types, you can delete them from the $.wikiLoveOptions object. Here are some examples that you could use in your wiki's MediaWiki:WikiLove.js page:

// Delete the Random Acts of Kindness Barnstar from the barnstars list
delete $.wikiLoveOptions.types.barnstar.subtypes.kindness;
// Delete the cheeseburger from the food and drink list
delete $.wikiLoveOptions.types.food.subtypes.cheeseburger;
// Delete the kittens interface entirely
delete $.wikiLoveOptions.types.kitten;

Добавление новых типов ВикиСимпатий

Вот пример добавления нового типа щенка:

$.wikiLoveOptions.types.puppy = {
	name: 'Puppy', // название типа (появляется в меню типов)
	fields: [ 'header', 'message' ], // поля для запроса в форме
	header: 'You get a puppy!', // заголовок, который появляется вверху сообщения на странице обсуждения (необязательно)
	text: '[[File:2009-08-16 Puppy at Duke East 1.jpg|left|150px]]\n$1\n\n~~'+'~~<br style="clear: both;"/>', // $1 — это пользовательское сообщение
	icon: 'http://www.mysite.com/images/wikilove-icon-puppy.png' // появляется в меню типов
};

Here's an example of adding a new hedgehog type with a gallery of images to choose from:

$.wikiLoveOptions.types.hedgehog = {
	name: 'Hedgehogs', // название типа (появляется в меню типов)
	fields: [ 'header', 'message' ], // поля для запроса в форме
	header: 'A hedgehog for you!', // заголовок, который появляется вверху сообщения на странице обсуждения (необязательно)
	text: '[[$3|left|150px]]\n$1\n\n~~'+'~~\n<br style="clear: both"/>', // $3 — название файла изображения, $1 — сообщение.
	gallery: {
		imageList: [ 'Hedgehog1.jpg', 'Orizo5.jpg', 'Erinaceus europaeus LC0119.jpg' ],
		width: 145, // максимальная ширина изображений в галерее
		height: 150, // максимальная высота изображений в галерее
		number: 3 // количество случайных изображений для отображения (необязательно)
	},
	icon: 'http://www.mysite.com/images/wikilove-icon-hedgehog.png' // появляется в меню типов

Here's an example of adding a new falafel subtype under the existing food type:

$.wikiLoveOptions.types.food.subtypes.falafel = {
    fields: [ 'header', 'message' ], // поля для запроса в форме
    option: 'Falafel', // option listed in the select list
    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!', // header that appears at the top of the talk page post (optional)
    image: 'Falafel award.png', // image for the item
    imageSize: '120px' // size to display image (optional)
};

Неисправности и проблемы

If the talk page you are attempting to edit contains a word that has been subsequently added to Special:SpamRegex, attempts to use the interface to add a barnstar or other award will fail. This is because the page cannot be edited, as it contains a forbidden word. Removing the word from the page or from the filter will fix the problem.

Документация по API

WikiLove uses a special wikilove API to post messages to users' talk pages. The API is basically just a thin wrapper around some existing APIs. If the user's talk page is a Wikitext page, it uses the edit API. If it's a Flow page, it uses the flow API. And if it's a LiquidThreads page, it uses the threadaction API.

In order to call the API, use the parameter action=wikilove.

Параметры:

title
Title of the user or user talk page to send WikiLove to (required)
text
Raw wikitext to add in the new section (required)
message
Actual message the user has entered, for logging purposes (doesn't include the image and HTML formatting)
token
Edit token. You can get one of these through prop=info (required)
subject
Subject header of the new page section (required)
type
Type of WikiLove (for statistics); this corresponds with a type selected in the left menu, and optionally a subtype after that (e.g. "barnstar-normal" or "kitten") (optional)
email
Content of the optional email message to send to the user

Example:

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

Дизайн версии 1.0

 
The WikiLove dialog upon first load
 
The WikiLove dialog upon selecting an award category
 
The WikiLove dialog upon filling out details for an award
 
Диалог ВикиСимпатии в режиме предварительного просмотра
 
The hover state for the award selection pane

This document describes the design and behavior of the WikiLove system of positive feedback for Wikipedia. This tool is designed to promote the spread of WikiLove within Wikipedia. Specifically, it makes adding awards and gifts to user talk pages as simple as clicking a few buttons.

Обоснование

Wikipedia, as a community, has several mechanisms for indicating displeasure or to provide negative feedback to its users. Certain gadgets, such as Twinkle, are heavily engineered towards warning, blocking, and reverting.

Since Wikipedia is in need of positive reinforcement, especially for new users, a system designed specifically and only towards positive feedback is desired.

Use of whimsical style

The system has a heavy style of "whimsy" to its design. This is intentional and is intended to align closer to the expectations of users of modern websites. Further, the entire principle of "awards" is in and of itself whimsical (e.g., cookies and kittens).

This style may be abandoned based on user feedback.

Note on nomenclature

Some template types, such as welcome templates, are not technically "awards".

This document uses the term award interchangeably with template. Since the system is user-focused, and not intended directly for power-users, user-facing nomenclature has been used.

Процесс

Поведение диалога

The WikiLove dialog is modal. Initiating it (from anywhere) will cause it to appear over the text of the page. It can be dismissed with a simple click.

Для системы ВикиСимпатия требуется JavaScript.

The user will initially be presented with a short set of easy-to-understand instructions and a list of available award categories.

Upon selecting an award type, the user is presented with a section in which they can add details to the award (such as a short message).

Note that some award categories (e.g., "cookie") will not have a secondary award creation step and will go directly to "Preview".

The user then clicks the "preview" button, which will load a preview of the award so that they may see how it will look on the user's talk page.

Once the user is satisfied, they may click the "Send WikiLove" button. At this time, AJAX calls to the server API will be fired, adding the template to the user's talk page.

Уведомление по эл. почте

Since most new users are unlikely to be aware that they even have talk pages, they may not be aware that they have received the WikiLove in question.

Accordingly, the server will email the recipient (if they have provided an email address) informing them of the WikiLove as well as short instructions on how to access their talk page.

Конфигурация сайта

Первоначально награды, которые можно получить, должны быть определены в самом гаджете. Если эта система повышена до расширения, то имена наград и шаблонов должны быть определены в файле LocalSettings.php.

Alternatively, such information can be stored in the database. An administration console would be required to add or subtract available awards and award categories.

Хранилище данных

For statistics gathering purposes, every time an award is given, data is tracked and stored in the database. A simple table, written to via the API, is all that need be required:

  • From User - The username of the person who is giving the award
  • To User - The username of the person receiving the award
  • Template - the name of the template awarded
  • Timestamp - when the award was given
  • Award Text - Optional; this would be the text of the award

Special:WikiLoveStatistics

In the future, it should be possible to create a page, Special:WikiLoveStatistics, that could be used to see how often the system is used as well as providing insight into who gives the most love, what awards are most popular, and who receives the most awards.

This will help to provide a global overview of community health. The more awards given, the healthier the community.

Future thinking

Phase two of this project could result in "Send WikiLove" links being dynamically added to signatures on talk pages. This would allow for WikiLove to be sent in a much easier manner, directly from other talk pages.

См. также