Extension:WikiLove
![]() リリースの状態: 安定 |
|
---|---|
![]() |
|
実装 | ユーザー インターフェイス |
説明 | 利用者のトークページに簡単にポジティブな反響文を付け加える。 |
作者 | Ryan Kaldari, Jan Paul Posma, Brandon Harris (デザイン) |
最新バージョン | 1.3.1 |
互換性の方針 | MediaWiki とともにリリースされるスナップショット。 master には後方互換性がありません。 |
MediaWiki | 1.27+ |
データベースの変更 | はい |
テーブル | wikilove_log |
ライセンス | MIT ライセンス |
ダウンロード | |
|
|
四半期ごとのダウンロード数 | 22 (Ranked 119th) |
translatewiki.net で翻訳を利用できる場合は、WikiLove 拡張機能の翻訳にご協力ください | |
問題点 | 未解決のタスク · バグを報告 |
WikiLove (ウィキラブ、ウィキ愛) は、ウィキペディアと他のウィキ群内で、ウィキラブを広く普及させるために設計された拡張機能です。 賞賛やプレゼント、利用者トークページへの招待を、ボタン数回のクリックという簡単な操作に変換します。
インストール
- ダウンロードして、ファイルを
extensions/
フォルダー内のWikiLove
という名前のディレクトリ内に配置します。
開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLove - 以下のコードを LocalSettings.php ファイルの末尾に追加します:
wfLoadExtension( 'WikiLove' );
- 更新スクリプトを実行します。このスクリプトは、この拡張機能が必要とするデータベーステーブルを自動的に作成します。
完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
組み込みのアワードを使用したい場合は、InstantCommonsを有効にする必要があります。これを有効にするには、LocalSettings.php
に以下を追加します:
$wgUseInstantCommons = true;
拡張機能を有効にするには、インターフェイスを有効にする為、個人設定の中にある編集タブを開きます。
これらのオプション設定は、利用者の LocalSettings.php
でも使用できます:
$wgWikiLoveGlobal
- この拡張機能をすべての相手に対して有効にし、個人設定を除去 (既定値: false)- 注記:既定で設定を有効にできますが、利用者に無効に切り替える選択肢(オプトアウト)を設ける手順は次のとおり。
$wgDefaultUserOptions['wikilove-enabled'] = 1;
$wgWikiLoveTabIcon
- 対応する外装用のアイコンを使用(例:ベクター)(既定値:true)$wgWikiLoveLogging
- WikiLove のログを有効にする (デフォルト: false); 統計クエリに使用できるデータベーステーブルwikilove_log
が自動的に作成されます。
使用法
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".
To use WikiLove, go to a user's talk page (not yourself) and click the heart icon. Follow the directions from there.
カスタム設定
To learn how to customize WikiLove for an individual editor (rather than an entire wiki), see the user documentation.
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:
- Wikipedia
- Wikimedia Commons
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
).
Then there is the list of types.
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
- Description of the subtypeheader
- 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
- 背景色 (CSS 妥当な任意の色。例:#fdffe7
、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 images145
is recommendedheight
- 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.
//<nowiki>
and end it with //</nowiki>
so that any Wikitext code (such as signatures or {{subst:foo}}
) doesn't get expanded within the JavaScript.Removing WikiLove types
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;
Adding new WikiLove types
Here's an example of adding a new puppy type:
$.wikiLoveOptions.types.puppy = {
name: 'Puppy', // name of the type (appears in the types menu)
fields: [ 'header', 'message' ], // fields to ask for in form
header: 'You get a puppy!', // header that appears at the top of the talk page post (optional)
text: '[[File:2009-08-16 Puppy at Duke East 1.jpg|left|150px]]\n$1\n\n~~'+'~~<br style="clear: both;"/>', // $1 is the custom message
icon: 'http://www.mysite.com/images/wikilove-icon-puppy.png' // appears in the types menu
};
Here's an example of adding a new hedgehog type with a gallery of images to choose from:
$.wikiLoveOptions.types.hedgehog = {
name: 'Hedgehogs', // name of the type (appears in the types menu)
fields: [ 'header', 'message' ], // fields to ask for in form
header: 'A hedgehog for you!', // header that appears at the top of the talk page post (optional)
text: '[[$3|left|150px]]\n$1\n\n~~'+'~~\n<br style="clear: both"/>', // $3 is the image filename, $1 is the message
gallery: {
imageList: [ 'Hedgehog1.jpg', 'Orizo5.jpg', 'Erinaceus europaeus LC0119.jpg' ],
width: 145, // maximum width of the images in the gallery
height: 150, // maximum height of the images in the gallery
number: 3 // number of random images to show (optional)
},
icon: 'http://www.mysite.com/images/wikilove-icon-hedgehog.png' // appears in the types menu
Here's an example of adding a new falafel subtype under the existing food type:
$.wikiLoveOptions.types.food.subtypes.falafel = {
fields: [ 'header', 'message' ], // fields to ask for in form
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)
};
Glitches and problems
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
例:
api.php?action=wikilove&title=User:Dummy&text=Love&subject=Hi&token=%2B\
Design for version 1.0
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/WikiLove-Proposal-Dialog-1.png/220px-WikiLove-Proposal-Dialog-1.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/WikiLove-Proposal-Dialog-2.png/220px-WikiLove-Proposal-Dialog-2.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/WikiLove-Proposal-Dialog-3.png/220px-WikiLove-Proposal-Dialog-3.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/WikiLove-Proposal-Dialog-4.png/220px-WikiLove-Proposal-Dialog-4.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/WikiLove-Proposal-Select-Hover.png/220px-WikiLove-Proposal-Select-Hover.png)
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.
Rationale
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.
ウィキペディアではポジティブな強化がまだないため、特に編集初学者の場合に該当し、肯定的なフィードバックに特化しそれだけを提示するシステムの設計と導入が待たれます。
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.
Process
ダイアログの挙動
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.
The WikiLove system requires 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.
Site configuration
Initially, the awards that can be given are to be defined in the gadget itself. If this system is elevated to an extension, then the names of the awards and the templates should be defined in the site's 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.
将来構想
このプロジェクトの第2フェーズでは、トークページの署名設定で「ウィキラブを送る」リンクをダイナミックに追加する結果になるかもしれません。そうすればもっと手軽に、ほかの人のトークページ上でウィキラブを直接、送れるようになるかもしれません。
関連項目
- ウィキラブ - Original design document
- Extension:Thanks - Echoを利用した軽い感謝の表明
- GiveCredit - MeatBall Wiki
![]() | この拡張機能は 1 つ以上のウィキメディアのプロジェクトで使用されています。 これはおそらく、この拡張機能が安定していて高いトラフィックのウェブサイトでも十分に動作することを意味します。 この拡張機能がインストールされている場所を確認するには、ウィキメディアの設定ファイル CommonSettings.php および InitialiseSettings.php 内で、この拡張機能の名前を探してください。 特定のウィキにインストールされている拡張機能の完全な一覧は、そのウィキの Special:Version ページにあります。 |
![]() | この拡張機能は以下のウィキ ファーム/ウィキ ホスト/パッケージに含まれています: これは正式な一覧ではありません。 一部のウィキ ファーム/ウィキ ホスト/パッケージは、ここに記載されていなくてもこの拡張機能を含んでいる場合があります。 必ずご利用のウィキ ファーム、ウィキ ホスト、バンドルで確認してください。 |
- Stable extensions/ja
- User interface extensions/ja
- MIT licensed extensions/ja
- Extensions in Wikimedia version control/ja
- BeforePageDisplay extensions/ja
- ChangeTagsListActive extensions/ja
- GetPreferences extensions/ja
- ListDefinedTags extensions/ja
- LoadExtensionSchemaUpdates extensions/ja
- SkinTemplateNavigation::Universal extensions/ja
- UserMergeAccountFields extensions/ja
- All extensions/ja
- Extensions used on Wikimedia/ja
- Extensions included in Miraheze/ja
- Extensions included in WikiForge/ja
- API extensions/ja