Extensie:WikiLove
WikiLove Statutul de lansare: stabilă |
|
---|---|
Implementare | User interface |
Descriere | E ușor să adăugați feedback pozitiv la paginile de discuții ale utilizatorilor |
Autor(i) | Ryan Kaldari, Jan Paul Posma, Brandon Harris (design) |
Versiune recentă | 1.3.1 |
Politica de compatibilitate | Snapshots releases along with MediaWiki. Master is not backward compatible. |
MediaWiki | 1.27+ |
Schimbările bazei de date | Da |
Tabele | wikilove_log |
Licență | MIT License |
Descărcare | |
|
|
Quarterly downloads | 18 (Ranked 114th) |
Traduceți extensia WikiLove dacă este disponibilă la translatewiki.net | |
Probleme cauzate | Sarcini deschise · Raportați probleme |
WikiLove este o extensie proiectată pentru a promova raspândireaWikiLove în cadrul Wikipedia și posibil în alte wikiuri. Anume, face ca adăugarea de premii, cadouri și invitațiile în paginile de comunicare ale utilizatorului la fel de simplu ca și clicul a câtorva butoane.
Instalare
- Download and move the extracted
WikiLove
folder to yourextensions/
directory.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLove - Adăugați următorul cod în partea de jos a setărilor locale ($LocalSettings):
wfLoadExtension( 'WikiLove' );
- Rulați scriptul de actualizare care va crea automat tabelele bazelor de date necesare pentru această extensie.
- Realizat – Navigați la Special:Version pe wiki-ul dvs. pentru a verifica dacă extensia a fost instalată cu succes.
Dacă doriți să utilizați premiile încorporate, trebuie să aveți activat InstantCommons. Pentru aceasta, adăugați acest lucru la LocalSettings.php
:
$wgUseInstantCommons = true;
Extensia ar trebui să fie acum activă. Accesați fila de editare din preferințele dvs. pentru a activa interfața.
De asemenea, puteți utiliza aceste opțiuni de configurare în LocalSettings.php
:
$wgWikiLoveGlobal
- activați extensia pentru toți utilizatorii, eliminând preferințele utilizatorului (implicit: fals)- Notă: puteți de asemenea să activați setarea în mod prestabilit, dar totuși să oferiți utilizatorilor opțiunea de al dezactiva ("opt-out") utilizând:
$wgDefaultUserOptions['wikilove-enabled'] = 1;
$wgWikiLoveTabIcon
- utilizați o pictogramă pentru interfaţa care le susţine (adică Vector) (implicit: adevărat)$wgWikiLoveLogging
- activați logarea dării pe WikiLove (implicit: false); acest lucru creează automat un tabel de baze de datewikilove_log
pe care îl puteți folosi pentru interogări statistice
Utilizare
Pentru a permite contului dvs. să utilizeze WikiLove, accesați fila de editare din preferințele dvs. și activați WikiLove sub "Funcțiile Labs" (sau, în unele versiuni, sub "Opțiuni generale"). In September 2022 this displays as "Enable showing appreciation for other users with the WikiLove tab".
Pentru a utiliza WikiLove, accesați pagina de discuții a utilizatorului și dați clic pe pictograma inimii. Urmați instrucțiunile de acolo.
Configurație personalizată
Pentru a afla cum să personalizați WikiLove pentru un editor individual (mai degrabă decât un întreg wiki), vedeți documentația utilizatorului.
Puteți personaliza opțiunile pentru propriul dvs. wiki editând pagina MediaWiki:WikiLove.js. Aici puteți schimba configurația la fel ca în cazul opțiunilor încorporate: defaultOptions.js. Iată câteva exemple de configurații personalizate WikiLove:
- Wikipedia
- albaneză (completely replaces all WikiLove configuration)
- portugheză (completely replaces all WikiLove configuration)
- malayalam
- engleză
- Wikimedia Commons
Opțiunile din partea de sus a defaultOptions.js sunt câteva setări implicite pentru confortul dvs.
Dacă omiteți anumite proprietăți din tipuri sau subtipuri, aceste valori implicite vor fi utilizate (defaultText, defaultBackgroundColor, defaultBorderColor, defaultImageSize, defaultImage
).
Apoi este lista de tipuri.
Fiecare tip poate avea proprietățile name
(obligatoriu) și icon
(opțional).
În plus, un tip poate avea o listă de subtipuri sau nu, caz în care proprietățile suplimentare vor fi atribuite tipului propriu-zis.
Dacă tipul are subtipuri, acestea sunt listate într-o listă de obiecte subtypes
.
Opțional, tipul poate avea și proprietatea select
, care specifică eticheta de deasupra meniului derulant.
Fiecare subtip poate avea următoarele proprietăți:
option
- nume în meniul derulantdescr
- Descrierea subtipuluiheader
- Antetul mesajului care se adaugă, adică partea care va fi întretitle
- Titlul casetei de mesajtext
- Textul casetei de mesaj (vedeți mai jos pentru detalii)image
- Imaginea casetei de mesajgallery
- Galerie pentru selectarea unei imagini (vedeți mai jos pentru detalii)fields
- Matricea de câmpuri pe care utilizatorul le poate edita; pot conține următoarele valori:header, title, image, message
imageSize
- Dimensiunea imaginii (de exemplu,100px
)backgroundColor
- Culoarea de fundal (orice culoare validă CSS, de exemplu#fdffe7
oryellow
)borderColor
- Culoarea marginii(la fel)
Atunci când nu se utilizează subtipuri, aceste opțiuni (cu excepția primelor două) trebuie adăugate la tipul însuși.
În câmpurile text
și email
(precum și în defaultText
), puteți utiliza câteva coduri care vor fi înlocuite automat:* $1 - Mesaj de utilizator
- $2 - Titlu
- $3 - Nume imagine
- $4 - Mărime imagine
- $5 - Culoare fundal
- $6 - Culoare margine
- $7 - Numele de utilizator al destinatarului
Pentru a ușura selectarea imaginilor de către utilizator, puteți crea o galerie cu imagini predefinite. Pentru aceasta, creați o proprietate gallery
, care are următoarele proprietăți:
imageList
- O serie de nume de imaginiwidth
- Lățimea maximă a imaginilor din galerie (în pixeli); pentru 3 imagini145
este recomandatheight
- Înălțimea maximă a imaginilor din galerie (în pixeli)number
- Numărul de imagini aleatorii afișate (opțional); dacă este omis, toate imaginile sunt afișate
Aveți posibilitatea să utilizați imagini de pe Wikimedia Commons, așa cum fac premiile implicite. Așa cum am menționat mai înainte, trebuie să activați InstantCommons pentru asta.
//<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
Dacă doriți doar să eliminați unele dintre elementele WikiLove implicite, le puteți șterge din obiectul $.wikiLoveOptions. Iată câteva exemple pe care le-ați putea folosi în pagina wiki MediaWiki:WikiLove.js :
// Ştergerea Acte de Bunătate Aleatorii Barnstar din lista de barnstars
delete $.wikiLoveOptions.types.barnstar.subtypes.kindness;
// Ștergeți cheeseburger-ul din lista de alimente și băuturi
delete $.wikiLoveOptions.types.food.subtypes.cheeseburger;
// Ștergeți interfața pisoiilor în întregime
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)
};
Scăpări şi probleme
Dacă pagina de discuții pe care încercați să o editați conține un cuvânt care a fost ulterior adăugat la Special:SpamRegex, încercarea de a utiliza interfața pentru a adăuga un barnstar sau alt premiu va eșua. Aceasta deoarece pagina nu poate fi editată, deoarece conține un cuvânt interzis. Eliminarea cuvântului din pagină sau din filtru va remedia problema.
Documentare API
WikiLove folosește un API special wikilove pentru a posta mesaje către paginile de discuții ale utilizatorilor. API-ul este în esență doar un ambalaj subțire în jurul unor API existente. Dacă pagina de discuții a utilizatorului este o pagină Wikitext, acesta folosește API-ul de edit . Dacă este o pagină Flow, utilizează API flow . Și dacă este o pagină LiquidThreads, folosește API-ul threadaction .
Pentru a apela API, utilizați parametrul action=wikilove
.
Parametri:
title
- Titlul paginii de discuție a utilizatorului sau a utilizatorului pentru a trimite WikiLove la (obligatoriu)
text
- Raw wikitext pentru a adăuga în noua secțiune (necesar)
message
- Mesajul actual introdus de utilizator în scopul înregistrării (nu include imaginea și formatarea HTML)
token
- Editați token. Puteți obține unul dintre acestea prin prop=info (necesar)
subject
- Antetul subiectului din noua secțiune a paginii (necesar)
type
- Tip de WikiLove (pentru statistici); acest lucru corespunde cu un tip selectat în meniul din stânga și, opțional, cu un subtip după acesta (de exemplu, "barnstar-normal" sau "pisoi") (opțional)
email
- Conținutul mesajului opțional de e-mail pe care îl trimiteți utilizatorului
Exemplu:
api.php?action=wikilove&title=User:Dummy&text=Love&subject=Hi&token=%2B\
Design pentru versiunea 1.0
Acest document descrie designul și comportamentul sistemului "WikiLove" de feedback pozitiv pentru Wikipedia. Acest instrument este conceput pentru a promova răspândirea WikiLove în Wikipedia. Mai exact, face adăugarea de premii și de cadouri paginilor de discuții ale utilizatorilor la fel de simplu ca și clicurile pe câteva butoane.
Argumentare
Wikipedia, ca o comunitate, are mai multe mecanisme de indicare a nemulțumirii sau de furnizare de feedback "negativ" utilizatorilor săi. Anumite gadget-uri, cum ar fi Twinkle, sunt puternic proiectate pentru avertizare, blocare și revenire.
Din moment ce Wikipedia are nevoie de armare pozitivă, în special pentru noii utilizatori, este dorit un sistem conceput în mod specific și numai spre feedback pozitiv.
Utilizarea stilului de poveste
Sistemul are un stil greu de "capriciu" pentru designul său. Acest lucru este intenționat și este destinat să se alinieze mai aproape de așteptările utilizatorilor site-urilor moderne. Mai mult, întregul principiu al "premiilor" este în sine însuflețit (de exemplu, cookie-uri și pisoi).
Acest stil poate fi abandonat pe baza feedback-ului utilizatorului.
Notă privind Nomenclatura
Unele tipuri de șabloane, cum ar fi șabloane de "Bine ați venit", tehnic nu sunt "premi".
Acest document foloșește termenul de "premiu" interschimbabil cu "format". Cum sistemul este focusat pe utilizator și nu este destinat direct utilizatorilor cu experiență, a fost folosit de catre utilizator orientat spre nomenclatura.
Proces
Comportamentul dialogului
Dialogul WikiLove este modal. Inițierea acestuia (de oriunde) îi va determina să apară peste textul paginii. Acesta poate fi respins cu un simplu click.
Sistemul WikiLove necesită JavaScript.
Utilizatorul va primi inițial un set scurt de instrucțiuni ușor de înțeles și o listă cu "categorii de atribuire" disponibile.
După selectarea unui tip de atribuire, utilizatorul are o secțiune în care poate adăuga detalii despre premiu (cum ar fi un mesaj scurt).
Rețineți că anumite categorii de premii (de exemplu, "cookie") nu vor avea un pas secundar de creare a premiului și vor merge direct la "Previzualizare".
Utilizatorul dă apoi click pe butonul "previzualizare", care va încărca o previzualizare a premiului, astfel încât să poată vedea cum va arăta în pagina de discuții a utilizatorului.
Odată ce utilizatorul este mulțumit, aceștia pot face click pe butonul "Trimiteți WikiLove". În acest moment, apelurile AJAX către serverul API vor fi concediate, adăugând formatul în pagina de discuții a utilizatorului.
Notificare email
Deoarece pentru majoritatea utilizatorilor noi este puțin probabil să știe că chiar au pagini de discuții, este posibil să nu știe că au primit WikiLove-ul în cauză.
În consecință, serverul va trimite prin e-mail destinatarului (dacă și-a furnizat o adresă de e-mail) informându-l despre WikiLove, precum și instrucțiuni scurte despre cum să acceseze pagina de discuții.
Configurare site
Inițial, premiile care pot fi acordate trebuie să fie definite în gadget-ul propriu-zis. Dacă acest sistem este ridicat la o extensie, atunci numele premiilor și formatelor ar trebui să fie definite în LocalSettings.php.
Alternativ, astfel de informații pot fi stocate în baza de date. O consolă de administrare ar fi necesară pentru a adăuga sau a scădea premiile și categoriile de premii disponibile.
Stocare date
Pentru colectarea de statistici se propune, de fiecare dată ca un premiu sa fie acordat, ca datele sa fie urmărite şi stocate în baza de date. Un simplu tabel, scris prin API, este tot ce trebuie cerut:
- "De la Utilizator” - Numele de utilizator al persoanei căreia îi este oferit premiul
- ”Către Utilizator” - Numele de utilizator al persoanei care primeşte premiul
- ”Format” - Numele formatului care a fost premiat
- ”Timestamp” - atunci cand premiul a fost acordat
- ”Text Premiu” - Opţional; acesta va fi textul premiului
Special:Statistica WikiLove
În viitor, ar trebui să fie posibilă crearea unei pagini, Special: WikiLoveStatistics, care ar putea fi utilizată pentru a vedea cât de des este folosit sistemul, precum și pentru a oferi o perspectivă asupra cui dă cea mai mare dragoste,care premii sunt cele mai populare și care primește cele mai multe premii.
Acest lucru va contribui la furnizarea unei imagini globale asupra sănătății comunității. Cu cât sunt acordate mai multe premii, cu atât este mai sănătoasă comunitatea.
Gândirea viitoare
Etapa a doua a acestui proiect ar putea duce la adăugarea dinamică a legăturilor "Trimiteți WikiLove" la semnăturile din paginile de discuții. Acest lucru ar permite ca WikiLove să fie trimise într-un mod mult mai ușor, direct de la alte pagini de discuții.
Vezi și
- WikiLove - Document de design original
- Extensia:Mulțumesc - pentru mulţumire de calibru mai mic foloseşte Echo
- GiveCredit - MeatBall Wiki
Această extensie este utilizată pentru unul sau mai multe proiecte proiecte Wikimedia. Acest lucru înseamnă probabil că extensie este stabil și funcționează suficient de bine pentru a fi utilizat de site-uri cu trafic ridicat. Căutați numele acestei extensii în fișierele de configurare CommonSettings.php și InitialiseSettings.php ale Wikimedia pentru a vedea unde este instalat. O listă completă a unor extensii instalate pe un anumit wiki poate fi văzută pe pagina Special:Version a wiki-ului. |
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |
- Stable extensions/ro
- User interface extensions/ro
- MIT licensed extensions/ro
- Extensions in Wikimedia version control/ro
- BeforePageDisplay extensions/ro
- ChangeTagsListActive extensions/ro
- GetPreferences extensions/ro
- ListDefinedTags extensions/ro
- LoadExtensionSchemaUpdates extensions/ro
- SkinTemplateNavigation::Universal extensions/ro
- UserMergeAccountFields extensions/ro
- All extensions/ro
- Extensions used on Wikimedia/ro
- Extensions included in Miraheze/ro
- Extensions included in WikiForge/ro
- API extensions/ro