Расширение:ВикиСимпатия
Статус релиза: стабильно |
|
|---|---|
| Реализация | Пользовательский интерфейс |
| Описание | Позволяет легко добавить положительный отзыв воздействия на страницу обсуждения участника |
| Автор(ы) | Ryan Kaldari, Jan Paul Posma, Brandon Harris (дизайн) |
| Последняя версия | 1.3.1 |
| Политика совместимости | Снэпшоты выходят вместе с MediaWiki. Мастер не имеет обратной совместимости. |
| MediaWiki | 1.27+ |
| Изменения в БД | Да |
| Таблицы | wikilove_log |
| Лицензия | MIT License |
| Скачать | |
|
|
|
| Переведите расширение WikiLove, если оно доступно на translatewiki.net | |
| Проблемы | Открытые задачи · Сообщить об ошибке |
«WikiLove» — это расширение, созданное для поддержки и распространения движения WikiLove в Английской Википедии, а также других вики-проектах. В частности, он гаджет помогает быстро добавлять награды, подарки и приглашения на страницы обсуждения пользователей в несколько кликов.
Установка
- Скачайте и распакуйте файл(ы) в папку с названием
WikiLoveв вашей папкеextensions/.
Вместо этого разработчикам и соавторам кода следует установить расширение из Git, используя:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLove
- Добавьте следующий код в конце вашего файла LocalSettings.php:
wfLoadExtension( 'WikiLove' );
- Выполните скрипт обновления, который автоматически создаст необходимые таблицы, используемые расширением.
Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.
Если вы хотите использовать встроенные награды, необходимо включить InstantCommons. Чтобы включить это, добавьте следующее в 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- включает ведение журнала (логи) отправки WikiLove (по умолчанию: «false»); это автоматически создаёт таблицу базы данныхwikilove_log, которую можно использовать для статистических запросов
Использование
Чтобы включить использование WikiLove для своей учётной записи, перейдите на вкладку «Редактирование» в настройках и включите WikiLove в разделе «Экспериментальные функции» (или, в некоторых версиях, в разделе «Общие параметры»). По состоянию на сентябрь 2022 года это отображалось как «Включить выражение признательности другим участникам с помощью WikiLove».
Чтобы использовать WikiLove, перейдите на страницу обсуждения пользователя и кликните на иконку в виде сердца. Следуйте указанным там инструкциям.
Дополнительные настройки
Чтобы узнать, как настроить ВикиСимпатию для отдельного редактора (а не для всей вики), см. пользовательскую документацию.
Вы можете настроить варианты для своей собственной вики, редактируя страницу MediaWiki:WikiLove.js. Здесь вы можете изменить конфигурацию так же, как это делается со встроенными параметрами: defaultOptions.js. Вот несколько примеров пользовательских конфигураций WikiLove:
- Wikipedia
- албанский (полностью заменяет всю конфигурацию ВикиСимпатии)
- португальский (полностью заменяет всю конфигурацию ВикиСимпатии)
- малаялам
- английский
- Wikimedia Commons
Параметры в верхней части defaultOptions.js — это некоторые настройки по умолчанию для вашего удобства.
Если вы исключите определенные свойства из типов или подтипов, будут использованы значения по умолчанию (defaultText, defaultBackgroundColor, defaultBorderColor, defaultImageSize, defaultImage).
Далее идёт список типов.
Каждый тип может иметь свойства name (обязательные) и icon (необязательные).
Кроме того, тип может иметь список подтипов или не иметь его — в этом случае дополнительные свойства будут назначены самому типу.
Если тип имеет подтипы, они перечислены в списке объектов subtypes.
По желанию, тип может также иметь свойство select, которое задаёт надпись над выпадающим меню.
Каждый подтип может обладать следующими свойствами:
option– название в выпадающем менюdescr– Описание подтипаheader– Заголовок добавляемого сообщения, то есть часть, которая будет находиться между== ... ==.title– Заголовок окна сообщенияtext– Текст окна сообщения (см. ниже для более подробной информации)image– Изображение окна сообщенияgallery– Галерея для выбора изображения (см. подробности ниже)fields– Массив полей, которые пользователь может редактировать; может содержать следующие значения:header, title, image, messageimageSize– Размер изображения (например,100px)backgroundColor– Цвет фона (любой допустимый цвет CSS, например,#fdffe7илиyellow)borderColor– Цвет рамки (тот же)
Если подтипы не используются, эти параметры (кроме первых двух) следует добавлять непосредственно к типу.
В полях text и email (а также в defaultText, упомянутом ранее) можно использовать несколько кодов, которые будут подставлены автоматически:
- $1 – Сообщение
- $2 – Заголовок
- $3 – Имя изображения
- $4 – Размер изображения
- $5 – Цвет фона
- $6 – Цвет границы
- $7 – Имя пользователя получателя
Чтобы пользователю было проще выбирать изображения, можно создать галерею с предустановленными изображениями. Для этого создайте свойство gallery, которое имеет следующие характеристики:
imageList– Массив названий изображенийwidth– Максимальная ширина изображений в галерее (в пикселях); для 3 изображений рекомендуется145height– Максимальная высота изображений в галерее (в пикселях)number– Количество случайных изображений для отображения (необязательно); если не указано, будут показаны все изображения.
Вы можете использовать изображения с Викисклада, как и в случае с наградами по умолчанию. Как уже упоминалось, для этого необходимо включить InstantCommons.
//<nowiki> и заканчивайте её //</nowiki>, чтобы любой код викитекста (например, подписи или {{subst:foo}}) не выполнялся внутри JavaScript.
Удаление типов ВикиСимпатий
Если вы просто хотите удалить некоторые из стандартных типов WikiLove, вы можете удалить их из объекта $.wikiLoveOptions. Вот несколько примеров, которые можно использовать на странице MediaWiki:WikiLove.js вашей вики:
// Удалить "the Random Acts of Kindness Barnstar" из списка наград
delete $.wikiLoveOptions.types.barnstar.subtypes.kindness;
// Удалить чизбургер из списка продуктов питания и напитков
delete $.wikiLoveOptions.types.food.subtypes.cheeseburger;
// Удалить интерфейс с котиками полностью
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' // появляется в меню типов
};
Вот пример добавления нового типа «ёжик» с галереей изображений для выбора:
$.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' // появляется в меню типов
Вот пример добавления нового подтипа «фалафель» к существующему типу «еда»:
$.wikiLoveOptions.types.food.subtypes.falafel = {
fields: [ 'header', 'message' ], // поля для запроса в форме
option: 'Falafel', // вариант, указанный в списке для выбора
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!', // заголовок, который отображается в верхней части сообщения на странице обсуждения (необязательно)
image: 'Falafel award.png', // картинки для элемента
imageSize: '120px' // размер для отображения изображения (необязательно)
};
Неисправности и проблемы
Если страница обсуждения, которую вы пытаетесь отредактировать, содержит слово, которое позднее было добавлено в Special:SpamRegex, попытки использовать интерфейс для добавления награды не будут реализованы. Это происходит потому, что страницу нельзя редактировать из-за наличия запрещённого слова. Удаление слова со страницы или из фильтра решит проблему.
Документация по API
WikiLove использует специальный API для размещения сообщений на страницах обсуждения участников. API по сути представляет собой лишь тонкую оболочку поверх уже существующих API. Если страница обсуждения участника является страницей Wikitext, используется API edit. Если это страница Flow, используется API flow. А если это страница LiquidThreads, используется API threadaction.
Чтобы вызвать API, используйте параметр action=wikilove.
Параметры:
title- Личная страница пользователя или его страница обсуждения, на которую будет отправлен WikiLove (обязательно)
text- Исходный викитекст для добавления в новый раздел (обязательно)
message- Фактическое сообщение, введённое пользователем, для работы журнала (лога) (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





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.
См. также
- ВикиЛюбовь - Original design document
- Расширение:Thanks - lighter-weight thanking for edits using Echo
- GiveCredit - MeatBall Wiki
| Это расширение используется в одном или нескольких проектах Викимедиа. Вероятно, это означает, что расширение стабильно и работает достаточно хорошо, чтобы использоваться такими сайтами с высоким трафиком. Найдите название этого расширения в файлах конфигурации Викимедиа CommonSettings.php и InitialiseSettings.php, чтобы узнать, где оно установлено. Полный список расширений, установленных на конкретной вики, можно увидеть на странице Special:Version wiki. |
| Это расширение включено в следующие вики-фермы/хостинги и/или пакеты: Это не исчерпывающий список. Некоторые вики-фермы/хостинги и/или пакеты могут содержать это расширение, даже если они не перечислены здесь. Всегда сверяйтесь со своими вики-фермами/хостингами или комплектами/бандлами для подтверждения. |
- Stable extensions/ru
- User interface extensions/ru
- MIT licensed extensions/ru
- Extensions in Wikimedia version control/ru
- BeforePageDisplay extensions/ru
- ChangeTagsListActive extensions/ru
- GetPreferences extensions/ru
- ListDefinedTags extensions/ru
- LoadExtensionSchemaUpdates extensions/ru
- SkinTemplateNavigation::Universal extensions/ru
- UserMergeAccountFields extensions/ru
- All extensions/ru
- Extensions used on Wikimedia/ru
- Extensions included in Miraheze/ru
- Extensions included in WikiForge/ru
- API extensions/ru
