Fandom Developers Wiki

For інформація про створення модулів, see UserTags/Extending.
For скрипт зі схожою функціональністю, see ProfileTags.

UserTags — це скрипт, який може додавати, видаляти, змінювати та переставляти теги на сторінках користувачів (теги «Засновник», «Адміністратор», «Заблоковано» тощо, які з’являються поруч із іменами користувачів у верхній частині сторінки). Це дозволяє додавати теги на додаток до тегів за замовчуванням Фандому, а також змінювати та видаляти їх за бажанням. Ви також можете винайти спеціальні теги, які ви можете присуджувати користувачам з будь-якої причини, яку вважаєте необхідною.

Цей скрипт замінює InactiveUsers і UserBadge. Ви повинні використовувати лише один із цих трьох скриптів, щоб уникнути конфліктів. UserTags є найновішим і має найбільшу кількість функцій і параметрів налаштування.

Дивіться MessageWallUserTags для «тегів» на форумі (а не в обговореннях) і на стінах повідомлень.

Installation[]

Примітка: Вам також потрібно буде додати такий CSS до MediaWiki:Common.css:

a.user-identity-header__tag {
    color: inherit;
}

Цього достатньо для базової функціональності; однак, якщо ви хочете налаштувати його, вам потрібно буде прочитати розділ Конфігурація.

Configuration[]

Цей скрипт має багато можливостей, тому наступний розділ дещо довгий. Вам не потрібно використовувати їх усі; насправді ви можете ігнорувати ті, які вам не потрібні. Ви можете перейти до Приклади, а потім повернутися, щоб прочитати розділ Основна конфігурація.

Основна конфігурація[]

Додайте це до Common.js: (джерело)

window.UserTagsJS = {
	modules: {},
	tags: {},
	oasisPlaceBefore: ''
};

Перше, що вам потрібно знати, це те, що користувачі діляться на «групи», це такі речі, як «заблоковані», «адміністратор», «бюрократ» чи «неактивний». Це внутрішні назви, які використовуються програмним забезпеченням, але в кінці їх потрібно відобразити на екрані, для цього вони перетворюються на «теги». Теги описують те, що насправді відображається на екрані потім.

Давайте зробимо простий приклад, припустимо, ви хочете створити 3 теги: «Редактор місяця», «Пропоновані» та «Гуру шаблонів». Для цього ми створимо групи «montheditor», «featured» і «templates»:

window.UserTagsJS = {
	modules: {},
	tags: {
		// група: { пов’язані дані тегу }}
		montheditor: { u:'Редактор місяця' },
		featured: { u:'Рекомендовані' },
		templates: { u:'Гуру шаблонів' }
	}
};

Під час створення нових груп і тегів цього зазвичай достатньо, за винятком того, що ці теги будуть розміщені в кінець рядка заголовка. Можливо, замість цього ви хочете розмістити тег на початку, щоб контролювати порядок, ви використовуєте параметр конфігурації order.

window.UserTagsJS = {
	modules: {},
	tags: {
		montheditor: { u:'Редактор місяця', order:-1/0 },
		featured: 'Рекомендовані',
		templates: 'Гуру шаблонів'
	}
};

Параметр order – це число від негативної нескінченності до позитивної нескінченності, нижчі числа ближче до початку. У цьому випадку -1/0 є негативною нескінченністю, тому тег буде розміщено на початку.

Ви можете використовувати будь-який з наведених нижче параметрів, щоб створити свої теги:

Параметр Опис Тип За замовчуванням
u Текст, який відображатиметься, якщо позначений користувач має невідому стать (не встановлено в їхніх параметрах). Текст Вимагається
m Текст, який відображатиметься, коли користувач [позначений] чоловік. Текст Якщо його немає, замість нього буде використано значення u.
f Текст для відображення, коли користувач [позначений] жінка. Текст Якщо його немає, замість нього буде використано значення u.
order Контролює порядок тегів у рядку. Нижчі числа розміщуються на початку, а найбільше – в кінці. Номер 10100
link Дозволяє перетворити тег у посилання на сторінку у вікі або будь-де в Інтернеті. Він приймає звичайні вікі-посилання, як-от «Project:Адміністратори» або повні URL-адреси, як-от «https://www.google.com/». Якщо це не встановлено, замість цього тег буде відображатися як звичайний текст. Майте на увазі, що інтервікі-посилання (наприклад, «Wikipedia:Computer») не працюватимуть, використовуйте замість них повну URL-адресу http://. Текст порожній
title Встановлює текст, який відображається, коли користувач наводить курсор миші на тег. Текст порожній

Чоловічий/жіночий/невідомий варіанти існують для підтримки мов, відмінних від англійської, наприклад італійської, які мають різні іменники для чоловіків/жінок. Англійською або іншими мовами, які не відрізняються за статтю, можна використовувати лише поле u (невідоме).

Перевизначення існуючих тегів[]

Іноді наявні теги можуть бути неадекватними для ваших потреб; можливо, ви хочете змінити текст, замовити або перетворити їх у посилання. Ви можете зробити це, просто визначивши свій власний тег для наявної групи:

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { u:'Тег бюрократа', link:'Project:Бюрократи' },
		inactive: { u: 'Не редагував нещодавно' }
	}
};

Це змінить тег бюрократа на «Тег бюрократа» та перетворить його на посилання на сторінку Project:Бюрократи та змінить неактивний тег так, щоб на ньому було написано «Нещодавно не редагував» замість просто «Неактивний». Крім того, можливо, ви просто хочете зробити це посиланням, не змінюючи текст, або просто змінити порядок, ви також можете зробити це:

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { link:'Project:Бюрократи', order:1e101 }
	}
};

Це перетворить тег бюрократ на посилання та перемістить його в кінець, не змінюючи те, що він говорить. [ПРИМІТКА: Не встановлення тексту працює лише з вбудованими групами; для ваших власних створених груп вказування тексту на тегу не є обов’язковим.

Примітка: Під час роботи з вбудованими групами, у назві яких є дефіс, ви повинні взяти ім’я в лапки, щоб воно працювало:

window.UserTagsJS = {
	modules: {},
	tags: {
		// НЕ РОБІТЬ ЦЬОГО, ЦЕ НЕ ПРАЦЮЄ
		bot-global: { link:'Project:Боти' }

		// THIS WILL WORK
		'bot-global': { link: 'Project:Боти' }
	}
};

Укладання[]

Скрипт розроблено для того, щоб легко надати кожному тегу інший вигляд. Кожен тег має клас CSS, заснований на внутрішній групі, яка його створила з доданою на початок 'usergroup-'. Наприклад, тег бюрократ має клас CSS usergroup-bureaucrat, неактивний тег має клас usergroup-inactive і так далі. Ваші користувацькі теги використовуватимуть вибрані вами групи, тег «Редактор місяця» з попереднього має клас CSS usergroup-montheditor.

Щоб змінити кольори або вигляд, просто додайте правило до MediaWiki:Common.css, наприклад:

.user-identity-header__tag.usergroup-bureaucrat {
	background-color: gold !important;
	color: black !important;
}
.user-identity-header__tag.usergroup-sysop {
        background-color: red !important;
        color: black !important;
}
.user-identity-header__tag.usergroup-featured {
	background-color: blue !important;
	color: white !important;
}

Це зробить теги бюрократів золотими, а теги «пропонований користувач» синіми. Ви можете використовувати будь-які директиви CSS, які вам подобаються, включаючи зміну кордонів, додавання фонових зображень або що завгодно.

.user-identity-header__tag.usergroup-bureaucrat {
	/* Відображення спеціального фону на тегу з червоною квадратною рамкою */
	background-image: url("https://site.com/image.png");
	border: 3px red solid;
	border-radius: 0;
}
.user-identity-header__tag.usergroup-featured:before {
	/* Додайте піктограму збільшувального скла в ліву частину тегу «Пропоновані». */
	content: url("https://site.com/magnifying-glass.gif");
}

Єдине застереження полягає в тому, що внутрішні назви груп будуть зменшені до простої англійської мови, якщо у вас є група на кшталт «asd%$ü@xyzüü», тоді ви отримаєте usergroup-asdxyz, але немає причини використання символів неанглійського алфавіту у внутрішніх групах, оскільки вони не видимі для відвідувачів вашої вікі.

Усі теги, які створюються або керуються UserTags, містяться в елементі span з класом CSS tag-container. Ви можете використовувати цей факт для переміщення всіх тегів у власний рядок, наприклад, встановивши для tag-container значення display: block. Ви можете переглянути ефекти, які ви можете спробувати, у розділі Приклади.

Нарешті, сам верхній баттер користувача має клас CSS для першого тегу в доданому до нього рядку. Наприклад, якщо тег бюрократ знаходиться на початку рядка, ви побачите, що #UserProfileMasthead має «usergroup-bureaucrat» клас, доданий до нього. Ви можете використовувати цей факт для додавання різних кольорів або фонових зображень до верхнього заголовка залежно від груп, до яких перебуває користувач. Зауважте, що теги Фандому за замовчуванням знаходяться на початку рядка, а заблоковані теги, зокрема «Staff», не можна відсунути. з самого початку. Це означає, що користувачі Staff завжди отримають «usergroup-staff», навіть якщо вони займають посаду місцевого адміністратора.

Контроль місця розміщення тегів[]

Параметр oasisPlaceBefore дозволяє керувати розташуванням тегів у заголовку Oasis. За замовчуванням вони завжди розміщуються в кінці, як і Фандом, але ви можете змінити це, вказавши селектор CSS (jQuery) для цієї опції. Наприклад, якщо ви хочете розмістити теги після H1 (ім’я користувача), але перед H2 (справжнє ім’я), ви повинні зробити це:

window.UserTagsJS = {
	modules: {},
	tags: {},
	oasisPlaceBefore: '> h2' // Розмістіть теги перед H2
};

Модулі[]

For документація розробника для створення нових модулів, see UserTags/Extending.

Тепер, коли ви зрозуміли основи, ми можемо перейти до фактичних функцій. Скрипт розбитий на модулі, які можна вмикати та вимикати окремо. Вам не потрібно читати все це, ви можете перейти до прикладів, а потім повернутися, щоб вибрати, які вам потрібні.

Нижче наведено вбудовані модулі та їх параметри конфігурації. Можна створювати власні модулі або встановлювати додаткові, створені іншими розробниками. Якщо ви хочете використовувати сторонній модуль, написаний кимось іншим, вам потрібно прочитати відповідну документацію, надану його розробником.

Неактивний[]

Увімкнено за замовчуванням: Так
Значення за замовчуванням: 30
Пов'язана група/тег: неактивний
Працює з анонімними користувачами: Так

Цей модуль додає групу неактивний до користувачів, які не редагували протягом налаштованого інтервалу. Потрібно число, яке вказує кількість днів, протягом яких користувач не повинен редагувати, щоб вважатися неактивним:

UserTagsJS.modules.inactive = 50; // 50 днів

Якщо у вас є більш суворі вимоги, ви можете відфільтрувати зміни за простором назв, у якому вони були внесені. Наприклад, якщо ви вважаєте «активними» лише людей, які редагують сторінки статей, а всі інші неактивні, навіть якщо вони нещодавно редагували сторінку обговорення чи щось подібне, замість цього можна використовувати цей формат конфігурації:

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0],
	zeroIsInactive: true // 0 редагування статті = неактивні
};

0 – основний простір назв статті. Масив просторів назв може містити кілька значень і прийматиме звичайні назви простору назв, як у рядку URL-адрес, наприклад:

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0, 'Talk', 'User talk', 'Forum'] // Зміни мають бути внесені до статей чи сторінок обговорень або сторінок обговорень користувачів чи форуму, щоб зарахувати, інші не враховуються
};

Групи MediaWiki[]

Увімкнено за замовчуванням: Так
Значення за замовчуванням: ['blocked', 'bot', 'bureaucrat', 'checkuser', 'content-moderator', 'rollback', 'soap', 'staff', 'sysop', 'threadmoderator']
{Пов'язана група/тег: Як зазначено в наданому вами масиві
Працює з анонімними користувачами: Ні

Цей модуль додає групи користувачів MediaWiki до внутрішнього списку груп і автоматично завантажуватиме переклади тексту тегів для цих груп із сервера. Цей модуль стосується формальних груп, таких як бюрократ, sysop, rollback тощо. Те, що ви бачите в Спеціальна:Список користувачів. Цей модуль приймає масив зі списком груп, які ви хочете включити:

UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop', 'rollback'];

Для вікі з користувацькими групами модуль приймає об’єкт, що містить ключ під назвою merge, який має значення true, і ключ під назвою groups зі значенням масиву зі списком користувацьких груп, які будуть об'єднані зі списком груп за замовчуванням:

UserTagsJS.modules.mwGroups = {
    merge: true,
    groups: ['patroller', 'imagecontrol']
};

Глобальні облікові записи без змін[]

Увімкнено за замовчуванням: Ні
Пов'язана група/тег: некористувач
Працює з анонімними користувачами: Так

Цей модуль позначає користувачів, у яких немає змін. Це не дуже корисно в Oasis, оскільки ви можете побачити лічильник внесків у верхній частині сторінки. Немає параметрів конфігурації, просто увімкніть його, якщо хочете:

UserTagsJS.modules.nonuser = true; // Ввімкнути

Щойно зареєстровані облікові записи[]

Увімкнено за замовчуванням: Так
Пов'язана група/тег: notautoconfirmed
Працює з анонімними користувачами: Ні

Цей модуль позначає користувачів, які нещодавно створили свій обліковий запис; тобто вони були зареєстрованими користувачами Фандому лише менше ніж 4 дні та внесли менше 10 змін до будь-якої вікі у Фандомі. Це може бути корисно для швидкого розпізнавання облікових записів sockpuppet. Просто увімкніть його, якщо хочете:

UserTagsJS.modules.autoconfirmed = true; // Ввімкнути

Зауважте, що тривалість і кількість редагування вирішує і контролює Фандом; модуль сам не вибирає їх, і ви не маєте над ним контролю.

Нові редактори[]

Увімкнено за замовчуванням: Так
Значення за замовчуванням: { days: 4, edits: 10 }
Пов'язана група/тег: newuser
Працює з анонімними користувачами: Ні}

Цей модуль позначає користувачів, які не були на вашій конкретній вікі протягом вказаної кількості днів або не внесли вказану кількість змін. Це в основному те саме, що модуль autoconfirmed, за винятком того, що він застосовується до однієї вікі, а не до всіх. Це може бути корисно для розпізнавання м’ясних ляльок або просто нових редакторів, які, можливо, деякий час були на Фандомі, але не дуже добре знають місцеву політику. Щоб налаштувати його, ви можете встановити будь-яке з цих полів, виключивши ті, для яких потрібно зберегти значення за замовчуванням:

UserTagsJS.modules.newuser = {
	days: 5, // Мабуть, був у вікі 5 днів
	edits: 10, // І мати принаймні 10 змін, щоб видалити тег
	namespace: 0 // Для врахування статей необхідно внести редагування
};

Параметри:

Параметр Опис Тип За замовчуванням
days Кількість днів після їх першого редагування до видалення тегу. Номер 4
edits Кількість змін, які вони повинні зробити, щоб тег було видалено. Номер 10
namespace Простір назв число, у якому мають бути внесені зміни, перш ніж вони будуть зараховані. Встановіть для цього значення 0, щоб враховувалися лише редагування статей (ігноруючи зміни, внесені в пісочниці, користувача, розмови користувачів, коментарі до статей, стіни повідомлень тощо). Номер усі простори назв

Цей модуль також за бажанням підтримує більш потужний формат, який дозволяє визначити власну логіку прийняття рішень. Щоб використовувати це, вам знадобиться елементарне розуміння JavaScript, але це дозволить вам визначати складні зв’язки, як-от Менше ніж 3 дні АБО Менше ніж 10 змін АБО (менше 30 редагувань І Менш ніж 5 днів).

UserTagsJS.modules.newuser = {
	namespace: 0, // [Необов’язково] Для зарахування статей необхідно внести зміни
	computation: function(days, edits) {
		// Якщо вираз відповідає дійсності, вони будуть позначені як новий користувач
		// Якщо вираз хибний, вони не будуть
		// У цьому прикладі newuser видаляється, щойно користувач отримує 30 змін, АБО, щойно він присутній протягом 10 днів, залежно від того, що станеться раніше
		return days < 10 && edits < 30;
	}
};

Параметр простору назв тут такий же, як і перший синтаксис. Зауважте, що параметри days і edits 'не робити нічого в цій другій формі, вони використовуються лише тоді, коли Ви не визначте обчислювальну функцію самостійно.

Спеціальні[]

Увімкнено за замовчуванням: Ні
Пов'язана група/тег: Як зазначено вами
Працює з анонімними користувачами: Так

Цей модуль дозволяє прикріплювати власні теги до користувачів. Спеціальні теги – це ті, які вам показали, як створити в розділі Основна конфігурація. Ви також можете приєднати будь-які вбудовані групи, якщо хочете; цілком допустимо додати групу неактивна до користувача як користувацьку групу, якщо ви хочете це зробити (це еквівалентно списку зниклих). Ви також можете робити дивні речі, як-от додавання групи засновник або бюрократ до користувача насправді не є жодною з цих речей. Цей модуль трохи складний у налаштуванні, він зіставляє імена користувачів у масиви груп:

UserTagsJS.modules.custom = {
	'UserName 1': ['montheditor', 'featured'], // Додати редактор місяця + рекомендовані
	'UserName 2': ['featured'], // Додати пропоновані
	'UserName 3': ['featured', 'templates'], // Додати Вибрані + Гуру шаблонів
	'UserName 4': ['inactive'] // Завжди неактивний
};

Зауважте, що порядок груп у списках тут не впливає на те, як групи відображаються на екрані, має значення лише параметр order відповідного тегу.

Фільтр користувача[]

Увімкнено за замовчуванням: Ні
Пов'язана група/тег: Невідомо, їх видаляє, а не додає
Працює з анонімними користувачами: Так

Цей модуль видаляє групи з певних конкретних користувачів, наприклад, якщо ви хочете видалити групу засновник від когось, або якщо ви активуєте модуль неактивний, але ви не хочете, щоб один конкретний користувач відображався як неактивний, навіть якщо він є. Формат ідентичний користувацькому вище, за винятком того, що ефект є протилежним:

UserTagsJS.modules.userfilter = {
	'UserName 1': ['inactive'], // Користувач *ніколи* неактивний
	'UserName 2': ['founder'], // Вилучити групу засновників
	'UserName 3': ['nonuser', 'newuser', 'inactive']
};

Мета-фільтри[]

Увімкнено за замовчуванням: Так
Значення за замовчуванням: { sysop: ['bureaucrat', 'founder'], bureaucrat: ['founder'], threadmoderator: ['sysop', 'bureaucrat'] }
Пов'язана група/тег: Невідомо, їх видаляє, а не додає
Працює з анонімними користувачами: Так

Мета-фільтр є більш потужною версією фільтра користувачів, замість того, щоб працювати з іменами користувачів, він працює з групами. В іншому формат схожий, але ефект набагато більш вражаючий:

UserTagsJS.modules.metafilter = {
	'inactive': ['sysop', 'bureaucrat'], // Вилучити неактивних з усіх бюрократів і адміністраторів
	'sysop': ['bureaucrat'], // Вилучіть тег «Admin» з бюрократів
	// Вилучити модераторів спільноти з адміністраторів, а також користувачів, які мають І патрульний, і відкочувач
	'threadmoderator': ['sysop', ['patroller', 'rollback']]
};

Implode (комбайн)[]

Увімкнено за замовчуванням: Ні
Пов'язана група/тег: Як зазначено вами
Працює з анонімними користувачами: Так

Цей модуль дозволяє виявити певну комбінацію груп користувачів і об’єднати їх в одну групу. Ідея полягає в тому, щоб дозволити вам створювати «мета-групи», як-от поєднання бюрократ і неактивний, щоб отримати «неактивний-бюрократ», або об’єднати threadmoderator і patroller, щоб отримати «напівадміністратора» або що завгодно.

UserTagsJS.modules.implode = {
	'inactive-bureaucrat': ['bureaucrat', 'inactive'], // Додає «неактивний-бюрократ», АЛЕ також видаляє бюрократ і неактивний
                                                           // тобто замінює бюрократ і неактивний на «неактивний-бюрократ»
	'inactive-sysop': ['sysop', 'inactive'],
	'half-sysop': ['threadmoderator', 'patroller', 'rollback']
};

Як бачите, формат в основному такий самий, як мета-фільтр вище, за винятком того, що він робить навпаки.

Explode[]

Увімкнено за замовчуванням: Ні
Пов'язана група/тег: Як вказано вами
Працює з анонімними користувачами: Так

Цей модуль такий самий, як implode вище, за винятком без комбінованої частини. Тобто групи, які ви використовуєте, не будуть видалені.

UserTagsJS.modules.explode = {
	'vandal-patrol': ['rollback', 'patroller'] // Додає групу 'vandal-patrol', АЛЕ НЕ видаляє відкочувачів або патруль
};

Сховати, коли заблоковано[]

Увімкнено за замовчуванням: ЗАВЖДИ
Пов'язана група/тег: Невідомо, їх видаляє, а не додає
Працює з анонімними користувачами: Так

Цей модуль видаляє всі групи з заблокованих користувачів, за винятком самої групи заблоковано. Цей модуль примусово увімкнено, якщо ви явно не вимкнули його. Як правило, ви захочете залишити це увімкненим, оскільки це не дозволить заблокованим користувачам бути позначеними як неактивні або як «новий редактор», якщо вони не виконали мінімальну кількість змін до того, як їх заблокували.

UserTagsJS.modules.stopblocked = false; // Вимкнути вручну

Заблоковано?[]

Увімкнено за замовчуванням
Пов'язана група/тег: Невідомо, їх видаляє, а не додає
Працює з анонімними користувачами: Так

Цей модуль визначає, заблокований користувач чи ні.

UserTagsJS.modules.isblocked = false;

Теги Oasis[]

Цей модуль існує всередині і не налаштовується користувачем. Тут зазначено лише для пояснення поведінки скрипту.

Функція цього модуля полягає в тому, щоб зчитувати теги Oasis (генеровані Фандомом) зі сторінки та інтерпретувати їх значення (саме звідки «заблоковано» та групи за замовчуванням, такі як «sysop», «staff», «soap» тощо Оазис). Він також автоматично отримує user-identity-box-group- повідомлення для вашої зручності, коли посилається на вбудовані у групах із користувацьким модулем тощо.

Example[]

// Основна конфігурація. Ми додаємо 2 користувацькі теги та змінюємо те, що говорить вбудований тег адміністратор
window.UserTagsJS = {
	modules: {},
	tags: {
		hello: { m: 'Male', f:'Female', u: 'No Gender Set', order: -1/0, link:'https://en.wikipedia.org/wiki/Gender' },
		muckraker: 'Muckraker',
		sysop: { u:'Addermin', link:'Project:Administrators' }, // Змініть «Адміністратор» на «Аддермін»
		'mini-sysop': { u: 'Half Administrator', link:'Project:HalfAdmins' },
		'vandal-patrol': { u: 'Spamdal Janitor', link:'Project:Janitors' }
	}
};
// Додайте спеціальні групи до кількох користувачів
UserTagsJS.modules.custom = {
	'John Doe': ['muckraker', 'hello'],
	'Someone': ['hello'],
	'You': ['inactive'], // Змусити неактивну групу замість того, щоб покладатися на неактивний модуль
	'Other User': ['hello', 'muckraker']
};
UserTagsJS.modules.autoconfirmed = true;
UserTagsJS.modules.newuser = true;
UserTagsJS.modules.inactive = 35; // Неактивний, якщо немає змін протягом 35 днів
UserTagsJS.modules.mwGroups = ['bureaucrat']; // Додайте групу бюрократів до бюрократів
UserTagsJS.modules.metafilter = {
	sysop: ['bureaucrat'], // Вилучити групу адміністраторів від бюрократів
	hello: ['muckraker'], // Вилучити групу hello від людей із групою muckraker
	'vandal-patrol': ['mini-sysop'] // Вилучити вандал-патруль з міні-адміністраторів
};
UserTagsJS.modules.userfilter = {
	'John Smith': ['inactive'] // Джон Сміт ніколи не буває бездіяльним, навіть коли він є
};
UserTagsJS.modules.implode = {
	'mini-sysop': ['patroller', 'rollback', 'threadmoderator'] // Вилучити patroller, rollback і threadmoderator, якщо існують ВСІ 3, і замініть на «mini-sysop»
};
UserTagsJS.modules.explode = {
	'vandal-patrol': ['patroller', 'rollback'] // Додайте 'vandal-patrol' до всіх, у кого є І патруль, і відкочувач
};

Це демонструє всі модулі, це не особливо практично, але, сподіваємося, ви отримаєте базове відчуття, як ним користуватися. Ви створюєте власні теги в розділі tags, а потім додаєте окремі блоки конфігурації для кожного модуля, який ви хочете використовувати після нього. Вам потрібно використовувати лише ті модулі, які ви хочете, можливо, ви не хочете, щоб усі були тут, і ви точно не хочете використовувати це як є.

Для більш практичного прикладу ось конфігурація за замовчуванням, яку скрипт використовує внутрішньо, якщо ви не встановлюєте її самостійно:

window.UserTagsJS = {
	modules: {},
	tags: {}
};
UserTagsJS.modules.inactive = 30;
UserTagsJS.modules.newuser = true;
UserTagsJS.modules.autoconfirmed = true;
UserTagsJS.modules.mwGroups = ['bureaucrat', 'threadmoderator', 'patroller', 'rollback', 'sysop', 'bot', 'bot-global'];
UserTagsJS.modules.metafilter = {
	sysop: ['bureaucrat', 'founder'],
	bureaucrat: ['founder'],
	threadmoderator: ['sysop', 'bureaucrat']
};

Майте на увазі, що ця конфігурація за замовчуванням використовується лише тоді, коли не вказано жодних налаштувань. Настійно рекомендуємо скопіювати весь цей блок у свій MediaWiki:Common.js, а потім налаштувати його звідти, додаючи та видаляючи додаткові записи модуля та створюючи нові теги за потреби.

Покрокове керівництво[]

Для покрокової інструкції я покажу вам, як створити теги, показані на зображенні нижче:

UserBadges Example

На цьому зображенні є 3 користувацькі теги: «JavaScript», «CSS» і «Шаблони», а також 2 групи MediaWiki: «sysop» і «bureacrat». Також зверніть увагу на порядок: тег «Адміністратор» стоїть на початку, потім «Бюрократ» і так далі.

Ми почнемо з налаштування скрипту та додамо кольори пізніше. Першим кроком є створення спеціальних груп і тегів:

window.UserTagsJS = {
	modules: {},
	tags: {
		jshelper: { u: 'JavaScript' },
		csshelper: { u: 'CSS' },
		templatehelper: { u: 'Templates' }
	}
};

Досить прості, назви груп, які я вибрав, є довільними, ви можете використовувати будь-яку просту англійську назву, яка вам подобається (літери A-Z a-z 0-9), хоча пам'ятайте, що вони чутливі до регістру, якщо ви змішуєте великі літери. Якщо ви спробуєте використовувати пробіли або дефіси, вам потрібно буде взяти ім’я в лапки, щоб воно працювало. Цього недостатньо, ми також хочемо, щоб теги також були певного порядку, тому нам доведеться додати параметри порядку:

window.UserTagsJS = {
	modules: {},
	tags: {
		jshelper: { u: 'JavaScript', order: 100 },
		csshelper: { u: 'CSS', order: 101 },
		templatehelper: { u: 'Templates', order: 102 },
		bureaucrat: { order: 1 } // Звичайний порядок 0
	}
};

Це розмістить усі теги в порядку, показаному на зображенні. Ви помітите, що я також додав тег «частковий» для групи бюрократ, тому що бюрократ це вбудована група, тому вона вже має переклади тексту, які мені не потрібно змінювати. Мені не потрібно нічого робити для групи sysop, оскільки її порядок за замовчуванням дорівнює нулю, як і всі групи MediaWiki. Пам’ятайте, що теги відсортовані за заданими значеннями order від найменшого (початок) до найбільшого (кінець). Числа, які я вибрав, довільні, вони насправді не мають значення, якщо кожен тег має різне число; теги, які мають однаковий номер order, будуть упорядковані випадковим чином [вони будуть у потрібному місці відносно інших тегів із різними значеннями order, але випадковими щодо тегів, що мають однаковий порядок]. Є кілька конкретних цифр, які також можуть виявитися корисними:

Номер Важливість
0 Теги з цим значенням, як правило, будуть біля початку. Усі Теги групи MediaWiki мають таке значення за замовчуванням. Пам’ятайте, що теги, які мають однаковий порядок, будуть випадковим чином розташовані відносно один одного.
1e100 10100. Це значення за замовчуванням для тегів, воно, очевидно, досить велике, тому невпорядковані теги зазвичай залишаються в кінці, за винятком тегів для груп newuser/nonuser/notautoconfirmed, які мають 10101 як їхній порядок.
1/0 Позитивна нескінченність. Це найбільше можливе значення. Будь-які теги з цим значенням завжди будуть в абсолютному кінці. inactive використовує це значення за замовчуванням.
-1/0 Негативна нескінченність. Це найменше можливе значення. Теги з цим значенням будуть на самому початку, за винятком тегів із чорного списку.

Тепер, коли наші групи та теги налаштовані правильно, ми можемо перейти до фактичного «використання» їх. Щоб використовувати наші власні групи/теги, нам, очевидно, потрібно використовувати спеціальний модуль, тому ми налаштуємо це зараз:

UserTagsJS.modules.custom = {
	'Lunarity': ['csshelper', 'templatehelper', 'jshelper'] // ПРИМІТКА: порядок списку тут НЕ має значення
};

Якщо ви прочитали опис спеціального модуля, ви можете побачити, що це додає 3 групи до вибраного користувача. Не так вже й складно, якби ми хотіли додати групи до кількох користувачів, то ми могли б просто перерахувати більше з них.

Зараз ми на півдорозі, нам просто потрібно додати теги Бюрократ і Адміністратор. Для цього ми скористаємося модулем груп MediaWiki. Групи MediaWiki автоматично запитує у сервера групи користувачів, тому нам не потрібно вручну заповнювати групи кожного користувача в користувацьких списках, що було б нудною тратою часу.

UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop'];

Насправді досить просто. Тепер скрипт запитуватиме у сервера членство користувача в групах і автоматично додасть групи «бюрократ» і «адміністратор», якщо сервер каже, що користувач у них є. [Він також неявно отримує переклади тексту для тегів бюрократа і адміністратора із сервера, звідки надходить внутрішній текст за замовчуванням]

Нарешті, нам потрібно встановити кольори, щоб вони відповідали тому, що ми бачимо на зображенні. Для цього ми створимо кілька спеціальних правил CSS у MediaWiki:Common.css. Кожен тег в інтерфейсі користувача має клас CSS на основі групи, яка його створила; наприклад, тег «Бюрократ» має клас CSS usergroup-bureaucrat. Для наших користувацьких тегів класами CSS будуть usergroup-jshelper, usergroup-csshelper, usergroup-templatehelper.

.user-identity-header__tag.usergroup-jshelper {
	background-color: #720 !important;
}
.user-identity-header__tag.usergroup-csshelper {
	background-color: green !important;
}
.user-identity-header__tag.usergroup-templatehelper {
	background-color: yellow !important;
	color: black !important;
}

І ми закінчили.

Остаточний JavaScript у MediaWiki:Common.js виглядає так:

window.UserTagsJS = {
	modules: {},
	tags: {
		jshelper: { u: 'JavaScript', order: 100 },
		csshelper: { u: 'CSS', order: 101 },
		templatehelper: { u: 'Templates', order: 102 },
		bureaucrat: { order: 1 }
	}
};
UserTagsJS.modules.custom = {
	'Lunarity': ['csshelper', 'templatehelper', 'jshelper'] // ПРИМІТКА: порядок списку тут НЕ має значення
};
UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop'];

Звичайно, ви, ймовірно, також захочете ввімкнути неактивних користувачів та кілька інших модулів.

Рестайлінг мастила Oasis[]

UserTags CSS Example

На зображенні вище використано таку конфігурацію:

window.UserTagsJS = {
	modules: {},
	tags: {
		a: { u: 'Test Tag 1', order:1 },
		b: { u: 'Test Tag 2', order:2 },
		c: { u: 'Test Tag 3', order:3 },
		d: { u: 'Test Tag 4', order:4 },
		e: { u: 'Test Tag 5', order:5 }
	},
	oasisPlaceBefore: '> h1'
};
UserTagsJS.modules.custom = {
	'Lunarity': ['a', 'b', 'c', 'd', 'e', 'inactive']
};

Зовнішній вигляд формувався за допомогою таких правил CSS:

.tag-container {
	display: block;
	background-image: url("https://images.wikia.nocookie.net/railgunscript/images/e/e8/Railgun_Top_Bar.png");
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	border-radius: 5px 5px 0 0;
}
.tag-container > .tag {
	background: rgba(0,0,0,0.6) !important;
}
.UserProfileMasthead .masthead-info hgroup {
	padding-top: 20px;
	background: rgba(32,64,150,0.66);
	background-image: linear-gradient(to top left, rgba(0,0,0,0.5) 0%, rgba(140,140,141,0.8) 100%);
}
.UserProfileMasthead .masthead-info {
	background: url("https://images.wikia.com/railgunscript/images/c/cb/Seamless-space.jpg") 0 20% black;
	color: white;
}
.UserProfileMasthead .tally {
	border-radius: 10px;
	background: rgba(0,0,0,0.5);
	padding: 3px 1em;
}
.UserProfileMasthead .masthead-info-lower:before {
	border-color: rgba(0,0,0,0.7) rgba(0,0,0,0.7) transparent transparent;
}
#WikiaUserPagesHeader {
	background-image: linear-gradient(to bottom, white 0%, #888 25%, black 75%);
}

Повний список груп[]

Це список усіх вбудованих груп для довідки, якщо ви хочете змінити текст або уникнути випадкового вибору вже використаної назви для спеціальної групи:

  • inactive
  • nonuser
  • newuser
  • notautoconfirmed
  • founder
  • staff
  • soap
  • patroller
  • rollback
  • sysop
  • bureaucrat
  • bot-global

Відомо, що такі групи MediaWiki також існують, тому ви, ймовірно, захочете їх уникати, якщо ви навмисно не намагаєтеся змінити те, що говорять для них теги:

  • autoconfirmed
  • emailconfirmed
  • user
  • bot
  • checkuser
  • util

Зверніть увагу, що всі групи в цьому другому списку не мають текст за замовчуванням, якщо Ви не налаштували модуль mwGroups для їх пошуку. Модуль груп MediaWiki завантажуватиме текст тегу «на вимогу» лише; інакше вам буде доступний лише текст за замовчуванням для груп у першому списку.

Обмеження[]

Деякі теги, створені Фандомом, захищені, такі групи не можуть бути додані або видалені від жодного користувача.

  • staff — Staff
  • soap — SOAP

Теги для цих груп завжди зберігатимуться і завжди залишатимуться на початку рядка; однак, ви можете перетворити теги для цих груп у посилання та додавати до них текст при наведенні курсора, як зазвичай, лише зміна тексту обличчя та порядку обмежено.

Усі інші теги, згенеровані Фандомом, як-от «Засновник», «Адміністратор», «Заблокований» тощо можна маніпулювати звичайним чином.

Щоб змінити текст обличчя на тегах для вищезазначених захищених груп, ви можете редагувати повідомлення MediaWiki на сервері, які містять дані перекладу тексту для них. Ці повідомлення можна знайти тут:

  • MediaWiki:Userprofile-global-tag-staff
  • MediaWiki:Userprofile-global-tag-soap

Будь ласка, уважно подумайте та дотримуйтесь здорового глузду під час редагування їх; вони існують для того, щоб співробітників і членів SOAP було легко знайти та розпізнати, змінюючи теги, що зробить це більш складним і заплутаним для людей, які не знайомі з вікі.

ПРИМІТКА: UserTags має внутрішній кеш, може знадобитися до 1 години, перш ніж будь-які зміни в вищезазначених групах ідентичностей фактично відобразяться. Також можуть виникнути збої, наприклад, зробити тег співробітника посиланням, що не працює взагалі, доки кеш не буде очищено. Кеш знаходиться в localStorage, ви можете примусово видалити його, очистивши файли cookie; але це не рекомендується.