Fandom Developers Wiki

This page, or parts of it, are still untranslated. Please translate it to the appropriate language (हिन्दी).

मोडल बनाने के बारे में जानकारी के लिए UserTags/Extending देखें।
समान कार्यक्षमता के स्क्रिप्ट के लिए ProfileTags देखें।

UserTags एक स्क्रिप्ट है जो यूजर पृष्ठों पर टैगों को जोड़ता, हटाता, पुनर्व्यवस्थित और संशोधित कर सकता है। (सदस्यों के मास्टहैड पर सदस्य के नाम के पास दिखने वाले "Founder", "Admin", "Blocked", आदि टैग)। यह आपको इच्छानुसार फैनडम के मौजूदा टैगों के साथ ही अपने टैग लगाने और हटाने देता है। आप सदस्यों को अपने इच्छा के कारण के लिए इनाम देने के लिए इस स्क्रिप्ट की मदद से नए टैग बना सकते हैं।

यह InactiveUsers और UserBadges का इस्तेमाल करता है - टकराव न बनाने के लिए इन तीनों में से बस एक ही स्क्रिप्ट का इस्तेमाल करें। UserTags नवीनतम है और इसी में कई अतिरिक्त सुविधाएँ हैं।

फोरम (डिसकशंस नहीं) और मैसेज वॉल पर "टैग" के लिए MessageWallUserTags देखें।

स्थापना[]

नोट: आपको नीचे दिए CSS को MediaWiki:Common.css पर जोड़ना होगा:

a.tag {
    color: inherit;
}

बुनियादी कार्यक्षमता के लिए इतना काफ़ी है; पर अगर आप इसे कस्टमाइज करना चाहते हैं, आपको "कॉन्फ़िगरेशन" सेक्शन पढ़ना होगा।

कॉन्फ़िगरेशन[]

इस स्क्रिप्ट में बहुत सारे सुविधाएँ हैं, और इसलिए यह सेक्शन ज़रा लम्बा है। आपको सब पढ़ने की ज़रुरत नहीं; आप उन हिस्सों को अनदेखा कर सकते हैं जिकी आपको ज़रुरत नहीं। आप "उदाहरण" तक जाकर यहाँ लौटना छह सकते हैं।

मूल कॉन्फ़िगरेशन[]

इसे Common.js पर जोड़ें (साधन):

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

पहली बात जो आपको जाननी होगी यह है कि सदस्यों को "ग्रुप" कहलाए जाने वाले समूहों में बाटा जाता है, जैसे कि "blocked", "sysop", "bureaucrat" या "inactive"। यह इंटरनल नाम है जिन का बस सॉफ्टवेयर ही प्रयोग करता है, पर उन्हें आखिर में स्क्रीन पर दिखाना होता है, जो वे "टैग" के माध्यम से करते हैं। टैग यह तय करते हैं कि आखिर में स्क्रीन पर क्या दिखाया जाएगा।

चलिए एक आसान उदहारण लेते हैं: मान लेते हैं कि आपको तीन टैग बनाने हैं: "महीने के श्रेष्ठ सदस्य", "फ़ीचर किया गया", और "टेम्पलेट गुरु"। इसे करने के लिए, हम तीन टैग "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 एक अनजान लिंग होने पर दिखाए जाने वाला टैग (जो उनके "प्रैफरेंसेज" में सेट किया नहीं गया होता)। टेक्स्ट Required
m सदस्य के पुरुष होने पर दिखाए जाने वाला टैग टेक्स्ट अगर नहीं दिया जाता, यह u वैल्यू का इस्तेमाल करेगा
f सदस्य के महिला होने पर दिखाए जाने वाला टैग टेक्स्ट अगर नहीं दिया जाता, यह u वैल्यू का इस्तेमाल करेगा
order पंक्ति में टैगों के स्थान को नियंत्रित करता है। न्यून संख्याओं को पहले जोड़ा जाता है, और उच्चतर संख्याओं को बाद में। संख्या 10100
link आपको किसी विकि या इंटरनेट पर कही का भी लिंक लगाने देता है। यह आम विकि लिंक जैसे "Project:Administrators" या "https://www.google.com/" जैसे पूरे URL स्वीकार करता है। अगर इसे सेट नहीं किया जाता, टैग को आम टेक्स्ट के रूप में जोड़ा जाएगा। ध्यान रखें कि इंटरविकि लिंक (जैसे "Wikipedia:Computer") काम नहीं करेंगे; पूरे http:// URL का इस्तेमाल करें। टेक्स्ट ख़ाली
title सदस्य के कर्सर मँडराने पर दिखाई देने वाला टेक्स्ट सेट करता है। टेक्स्ट ख़ाली

पुरुष/महिला/अनजान विकल्प अंग्रेजी के आलावा लिंग के आधार पर बदलने वाले सर्वनाम वाले भाषाओं के लिए है, जैसे इतालवी। अंग्रेजी या किसी और लिंग-आधारित सर्वनाम न रखने वाले भाषा के मामले में आपको बस u (अनजान) फील्ड का इस्तेमाल करना है।

मौजूदा टैगों को ओवर्राइड करना[]

कभी-कभी मौजूदा टैग आपके ज़रूरतों के लिए काफ़ी नहीं भी हो सकता है; हो सकते है आप उन्हें एक लिंक में बदलना चाहते हो, या उन पर लिंक जोड़ना चाहते हो। आप इसे बस मौजूदा टैगों पर अपना टैग परिभाषित करके कर सकते हैं:

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { u:'ब्यूरोक्रैट टैग', link:'Project:Bureaucrats' },
		inactive: { u: '"हाल ही में सम्पादित नहीं किया है' }
	}
};

इससे ब्यूरोक्रैट टैग पर "ब्यूरोक्रैट टैग" दिखेगा और इसे "Project:Bureaucrats" पृष्ठ तक लिंक कर देगा, और "inactive" टैग पर बस "Inactive" के बजाय "हाल ही में सम्पादित नहीं किया है" दिखाएगा। वैकल्पिक रूप से, आप इसे टेक्स्ट को बदले बिना दुसरे पृष्ठ तक लिंक करना या उसके स्थान को बदलना चाह सकते हैं; ऐसा भी किया जा सकता है:

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { link:'Project:Bureaucrats', order:1e101 }
	}
};

यह ब्यूरोक्रैट टैग को उसका टेक्स्ट बदले बिना उसे लिंक में बदलकर उसे आखिर में जोड़ देगा। [ध्यान रखें: टेक्स्ट को बस डिफ़ॉल्ट ग्रुपों पर सेट न भी किया जा सकता है; खुद बनाए टैगों के लिए नाम न जोड़ना वैकल्पिक नहीं है]।

नोट: हायफ़न वाले डिफ़ॉल्ट ग्रुपों पर काम करते समय आपको उनके नामों को उद्धरण चिह्नों में डालना होगा, ताकि वे काम कर सकें:

window.UserTagsJS = {
	modules: {},
	tags: {
		// ऐसा न करें, यह काम नहीं करेगा
		bot-global: { link:'Project:Bots' }

		// यह ही काम करेगा
		'bot-global': { link: 'Project:Bots' }
	}
};

डिज़ाइन/दिखावट[]

इस स्क्रिप्ट को हर टैग को एक अलग दिखावट देने के प्रक्रिया को आसान करने के लिए बनाया गया है। हर टैग का अपने इंटरनल ग्रुप पर एक CSS क्लास है जिसके शुरुआत में 'usergroup-' जोड़ा गया है। उदाहरणस्वरूप, ब्यूरोक्रैट टैग का CSS क्लास है usergroup-bureaucrat, अक्रिय टैग का CSS क्लास है usergroup-inactive और ऐसे ही। आपके कस्टम टैग आपके द्वारा चुने गए ग्रुप का इस्तेमाल करेगा; पहले बनाए "महीने का श्रेष्ठ सदस्य" टैग का CSS क्लास है usergroup-montheditor। रंग या दिखावट बदलने के लिए बस MediaWiki:Common.css पर यह जोड़ दें:

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

यह ब्यूरोक्रैट टैग को सोनाली और "फीचर किया गया" टैग को नीले रंग का कर देगा। आप अपने CSS नियम भी जोड़ सकते हैं, जैसे कि बॉर्डर बदलना, बैकग्राउंड पर कोई चित्र लगाना या कुछ भी।

.tag.usergroup-bureaucrat {
	/* टैग पर लाल वर्ग बॉर्डर के साथ कस्टम बैकग्राउंड जोड़ता है */
	background-image: url("https://site.com/image.png");
	border: 3px red solid;
	border-radius: 0;
}
.tag.usergroup-featured:before {
	/* "फीचर किया गया" टैग के बाए तरफ एक आवर्धक लेंस जोड़ देता है */
	content: url("https://site.com/magnifying-glass.gif");
}

एक चेतावनी यह है कि ग्रुप के नामों को सामान्य अंग्रेजी में बदल दिया जाएगा, तो इसका मतलब है कि अगर आपके पास 'asd%$ü@xyzüü' नाम का एक समूह है, इसे usergroup-asdxyz में बदल दिया जाएगा। पर टैगों पर ऐसे अक्षरों का इस्तेमाल करने का कोई मतलब नहीं बनता, क्योंकि ये आपके सदस्यों को नहीं दिखेंगे।

UserTags द्वारा बनाए या देख-रेख किए गए टैग tag-container CSS क्लास के साथ एक span एलिमेंट में रखे जाते हैं। आप इस बात का फ़ायदा उठाकर सारे टैगों को अपने पंक्ति पर मिसाल के तौर पर tag-container को display: block पर सेट कर ला सकते हैं। आप अपने प्रयास-योग्य बदलाव "उदाहरण" सेक्शन में देख सकते हैं।

आखिर में, सदस्य के मास्टहैड का क्लास ही उसके पहले टैग का क्लास है। उदाहरणस्वरूप, अगर मास्टहैड पर सबसे पहला टैग bureaucrat है, आप यह देख पाएँगे कि #UserProfileMasthead पर 'usergroup-bureaucrat' क्लास जुड़ा हुआ होता है। आप इस बात का फ़ायदा उठाकर एक सदस्य के पहले टैग पर आधारित मास्टहैड पर डिज़ाइन जोड़ सकते हैं। ध्यान रखें कि फैनडम के टैग, जैसे कि "Staff", डिफ़ॉल्ट से ही पंक्ति के शुरुआत में होते हैं और उन्हें हटाया नहीं जा सकता। इसका मतलब है कि किसी विकि पर एक लोकल एडमिन होने के बावजूद किसी फैनडम स्टाफ़ को 'usergroup-staff' ही मिलेगा।

टैग के स्थान को नियंत्रित करना[]

oasisPlaceBefore विकल्प आपको यह चुनने देता है कि टैग को ओएसिस हैडर पर कहाँ जोड़ा जाता है। डिफ़ॉल्ट से, इन्हे फैनडम टैगों की तरह आखिर में जोड़ा जाता है पर आप इस विकल्प के लिए एक CSS (jQuery) सिलेक्टर लगाकर इसे अवश्य बदल सकते हैं। उदाहरणस्वरूप, अगर आप टैग को H1 (यूजर नाम) के पहले, पर H2 (असली नाम) से पहले जोड़ना चाहते हैं, आप यह करते:

window.UserTagsJS = {
	modules: {},
	tags: {},
	oasisPlaceBefore: '> h2' // H2 से पहले टैग जोड़ता है
};

मोडल[]

मोडल बनाने के डेवलपर डॉक्यूमेंटेशन के लिए UserTags/Extending देखें।

अब जब आप बुनियादी चीज़ें समझ चुके हैं, चलिए असली सुविधाएँ देखते हैं। इस स्क्रिप्ट को मोडलों में बाँटा गया है जिन्हे अलग-अलग तरीके से ऑन या ऑफ किया जा सकता है। आपको यह सब पढ़ने की ज़रुरत नहीं; आप उदाहरण पढ़कर यहाँ वापस आकर अपने मनपसंद सुविधाएँ चुनकर उनके बारे में पढ़ सकते हैं।

बिल्ट-इन मोडल और उनकी सुविधाएँ नीचे दिए गए हैं। आप अपना खुद का मोडल भी बना सकते हैं, या दुसरे डेवलपरों द्वारा बनाए गए मोडल भी स्थापित कर सकते हैं। अगर आप दुसरे डेवलपर द्वारा बनाए गए किसी तीसरी पार्टी मोडल का प्रयोग करना चाहते हैं, आपको उन द्वारा दिया गया डॉक्यूमेंटेशन पढ़ लेना चाहिए।

अक्रिय[]

डिफ़ॉल्ट से सक्षम: हाँ
डिफ़ॉल्ट वैल्यू: 30
ग्रुप/टैग: "inactive"
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मोडल उन सदस्यों पर inactive ग्रुप लगा देता है जिन्होंने दिए गए समय तक कुछ भी सम्पादित नहीं किया है। यह किसी को अक्रिय घोषित करने के लिए उसके द्वारा न सम्पादित किए गए दिनों की संख्या के रूप में एक संख्या का प्रयोग करता है:

UserTagsJS.modules.inactive = 50; // ५० दिन

अगर आपके पास "स्ट्रिंजेंट" जैसे आवश्यकताएँ हैं, आप सम्पादनाओं को नेमस्पेस के हिसाब से फ़िल्टर कर सकते हैं। उदाहरणस्वरूप, अगर आप किसी सदस्य को बस मेनस्पेस पृष्ठ पर सम्पादित करने पर ही सक्रीय मानते हैं, और बाकी सब को अक्रिय मानते हैं हालाँकि उन्होंने हाल ही में कोई टॉक पेज या ऐसा कुछ सम्पादित किया हो, आप इस कॉन्फ़िगरेशन प्रारूप का इस्तेमाल कर सकते हैं:

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0],
	zeroIsInactive: true // ० आर्टिकल सम्पादनाएँँ = अक्रिय
};

मुख्य आर्टिकल नेमस्पेस है। नेमस्पेस का ऐरे कई नेमस्पेसों को संभाल सकता है और URL बार पर दिखने वाले सामान्य नेमस्पेस नाम को स्वीकृत हैं। उदाहरणस्वरूप:

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0, 'Talk', 'User talk', 'Forum'] // सम्पादनाओं को गिने जाने के लिए आर्टिकल, टॉक पृष्ठ, सदस्य टॉक पृष्ठ या फोरम में होना होगा, दूसरो को गिना नहीं जाएगा
};

मीडियाविकि समूह[]

डिफ़ॉल्ट से सक्षम: हाँ
डिफ़ॉल्ट वैल्यू: ['blocked', 'bot', 'bureaucrat', 'threadmoderator', 'checkuser', 'content-moderator', 'helper', 'rollback', 'staff', 'sysop', 'threadmoderator', 'soap']
ग्रुप/टैग: आपके द्वारा दिए गए ऐरे में दिया गया
गुमनाम सदस्यों के लिए काम करता है: नहीं

यह मोडल सदस्यों के मीडियाविकि ग्रुप को उनके इंटरनल ग्रुप लिस्ट में जोड़ देता है और सर्वर से अपने-आप टैग के टेक्स्ट अनुबादों को डाउनलोड कर लेता है। यह मोडल threadmoderator, bureaucrat, sysop, rollback, आदि औपचारिक समूहों के लिए है। Special:ListUsers में दिखने वाले चीज़ों की तरह। यह मोडल आपके दिए ग्रुपों के ऐरे का प्रयोग करता है:

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

बिना सम्पादन के ग्लोबल अकाउंट[]

डिफ़ॉल्ट से सक्षम: नहीं
ग्रुप/टैग: nonuser
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मोडल उन सदस्यों को टैग करता है जिनके शून्य सम्पादनाएँ हैं। यह ओएसिस में इतना काम नहीं आता क्योंकि आप सम्पादन के संख्या को मास्टहैड पर देख सकते हैं। इस में कोई कॉन्फ़िगरेशन विकल्प नहीं है, आप चाहे तो इसे बस सक्षम कर सकते हैं:

UserTagsJS.modules.nonuser = true; // खोलता है

नए अकाउंट[]

डिफ़ॉल्ट से सक्षम: हाँ
ग्रुप/टैग: notautoconfirmed
गुमनाम सदस्यों के लिए काम करता है: नहीं

यह मोडल उन सदस्यों को टैग करता है जिन्होंने हाल ही में अपना अकाउंट बनाया है। यानि, वे ४ दिन से कम समय के लिए एक फैनडम सदस्य रहे हैं और उन्होंने विकियों पर १० से काम सम्पादनाएँ किए हैं। यह सॉकपपेट अकाउंटों को पहचानने में काम आ सकता है। आप चाहे तो इसे बस सक्षम कर दें:

UserTagsJS.modules.autoconfirmed = true; // खोलता है

ध्यान रखें कि समय-सीमा और सम्पादना फैनडम सेट करता है, यह मोडल नहीं, और आपका इसके ऊपर कोई नियंत्रण नहीं है।

नए सदस्य[]

डिफ़ॉल्ट से सक्षम: हाँ
डिफ़ॉल्ट वैल्यू: { days: 4, edits: 10 }
ग्रुप/टैग: newuser
गुमनाम सदस्यों के लिए काम करता है: नहीं

यह मोडल उन सदस्यों को टैग करता है को आपके विकि पर दिए गए समय तक नहीं रहें हैं या उन्होंने दिए गए संख्या के सम्पादनाएँ नहीं किए हैं। यह autoconfirmed जैसा ही है, पर यह सारे विकियों के बजाय एक विकि के लिए है। यह मीट-पपेट सदस्यों को या फैनडम पर काफी समय रहे लोकल नियम न जान्ने वाले सदस्यों को पहचानने में काम आता है। इसे कॉन्फ़िगर करने के लिए आप किसी भी फील्ड का प्रयोग कर सकते हैं, और उन फील्डों को छोड़ सकते हैं जिन का आप डिफ़ॉल्ट वैल्यू रखना चाहते हैं:

UserTagsJS.modules.newuser = {
	days: 5, // विकि पर ५ दिन के लिए होना होगा
	edits: 10, // और टैग हटने के लिए १० सम्पादनाएँँ होने होंगे
	namespace: 0 // सम्पादनाओं को गिने जाने के लिए आर्टिकल पर होना होगा
};

पैरामीटर हैं:

पैरामीटर विवरण प्रकार डिफ़ॉल्ट
days दिनों की संख्या जब उनसे यह टैग हैट जाएगा संख्या
edits सम्पादनाओं की संख्या जो पहुँचने पर उन से यह टैग हैट जाएगा संख्या १०
namespace नेमस्पेस संख्या जिन पर टैग हटने के लिए सम्पादन करना होगा। सिर्फ आर्टिकल को गिनने के लिए इसे 0 पर लगाए (सैंडबॉक्स, यूजर, यूजर टॉक, आर्टिकल कमेंट, मैसेज वाल, आदि पर सम्पादनाओं को नज़रअंदाज़ करते हुए)। संख्या सारे नेमस्पेस

यह मोडल आपके फ़ैसले के लॉजिक को समर्थित करने के लिए एक और विकल्प रखता है। इसका इस्तेमाल करने के लिए आपको प्रारंभिक जावास्क्रिप्ट आना होगा, पर यह आपको ३ दिन से कम या १० सम्पादनाओं से काम या (३० सम्पादनाओं से काम या ५ दिन से कम) जैसे कठिन कमांड परिभाषित करने देता है।

UserTagsJS.modules.newuser = {
	namespace: 0, // [वैकल्पिक] सम्पादनाओं को गिने जाने के लिए आर्टिकल पर होना होगा
	computation: function(days, edits) {
		// यह एक्सप्रेशन "ट्रू" है, उन्हें नए सदस्य के रूप में गिन लिया जाएगा
		// अगर एक्सप्रेशन "फ़ॉल्स" है, उन्हें नहीं गिना जाएगा
		// इस उदाहरण में सदस्य के ३० एडिट पाने पर, या उनके १० दिन तक रहने पर, newuser हटा दिया जाता है; दोनों में से जो भी पहले होता है
		return days < 10 && edits < 30;
	}
};

यहाँ का नेमस्पेस पैरामीटर पहले सिंटैक्स जैसा ही है। ध्यान रखें कि इस दुसरे रूप में days और edits पैरामीटर कुछ नहीं करते। उन्हें तब ही इस्तेमाल किया जाता है जब आप खुद एक कम्प्यूटेशन फंक्शन नहीं देतें।

कस्टम[]

डिफ़ॉल्ट से सक्षम: नहीं
ग्रुप/टैग: आपका विकल्प
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मोडल आपको सदस्यों पर कस्टम टैग जोड़ने देता है। कस्टम टैग वे हैं जिन्हें आपको मूल कॉन्फ़िगरेशन सेक्शन में बनाना सिखाया गया था। आप अपने पसंद के बिल्ट-इन ग्रुप भी जोड़ सकते हैं; inactive ग्रुप को एक कस्टम ग्रुप के रूप में किसी सदस्य पर लगाना पूरी तरह से स्वीकृत है, अगर आप ऐसा करना चाहो तो (यह चले गए लिस्ट जैसा है)। आप अजीब चीज़ें भी कर सकते हैं जैसे कि founder या bureaucrat टैग उन सदस्यों पर लगाना जो इन ग्रुपों में हैं ही नहीं। यह मोडल कॉन्फ़िगर करने में ज़रा-सा मुश्किल है, और वह सदस्य के नामों को ग्रुपों के हिसाब से ऐरे पर जोड़ता है:

UserTagsJS.modules.custom = {
	'UserName 1': ['montheditor', 'featured'], // महीने का श्रेष्ठ सदस्य + फीचर किया गया
	'UserName 2': ['featured'], // "फीचर किया गया" जोड़ता है
	'UserName 3': ['featured', 'templates'], // फीचर किया गया + टेम्पलेट गुरु
	'UserName 4': ['inactive'] // हमेशा अक्रिय
};

ध्यान रखें कि यहाँ दिए अनुक्रम का सदस्य के पृष्ठ पर दिखाए गए टैगों के अनुक्रम में कोई फरक नहीं आता है; सिर्फ उस टैग का order पैरामीटर ही इसे बदल सकता है।

सदस्य फ़िल्टर[]

डिफ़ॉल्ट से सक्षम: नहीं
ग्रुप/टैग: कोई नहीं/उन्हें हटाता है, जोड़ता नहीं
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मोडल विशेष सदस्यों से टैग हटाता है, जैसे कि अगर आप किसी से founder टैग हटाने चाहते हो, या अगर आप inactive सक्षम करने के बाद किसी सदस्य को अक्रिय होने के बावजूद उसे अक्रिय मानना नहीं चाहतें। यह custom जैसा है पर फरक यह है कि यह उसका उल्टा करता है:

UserTagsJS.modules.userfilter = {
	'UserName 1': ['inactive'], // सदस्य *कभी भी* अक्रिय नहीं होता
	'UserName 2': ['founder'], // "फाउंडर" ग्रुप हटाता है
	'UserName 3': ['nonuser', 'newuser', 'inactive']
};

मेटा फ़िल्टर[]

डिफ़ॉल्ट से सक्षम: हाँ
डिफ़ॉल्ट वैल्यू: { sysop: ['bureaucrat', 'founder'], bureaucrat: ['founder'] }
ग्रुप/टैग: कोई नहीं/उन्हें हटाता है, जोड़ता नहीं
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मेटा-फ़िल्टर सदस्य-फ़िल्टर के एक और शक्तिशाली संस्करण जैसा है - सदस्य के बजाय, यह समूहों पर काम करता है। यह फ़िल्टर उसके जैसा ही है पर इसे इस्तेमाल करने का अंजाम और भी ज़्यादा प्रभावशाली है:

UserTagsJS.modules.metafilter = {
	'inactive': ['sysop', 'bureaucrat'], // ब्यूरोक्रैट और साईसॉप सदस्यों से "अक्रिय" टैग हटा देता है
	'sysop': ['bureaucrat'], // ब्यूरोक्रैट सदस्यों से "एडमिन" टैग हटा देता है
	'threadmoderator': ['sysop', ['patroller', 'rollback']] // एडमिन और सदस्य जो पट्रोलर और रोलबैक "दोनों" हैं, उनसे "चैट मॉडरेटर" टैग हटा देता है
};

इम्पलोड (जोड़ता है)[]

डिफ़ॉल्ट से सक्षम: नहीं
ग्रुप/टैग: आपका विकल्प
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मोडल आपको दो या अधिक यूजर-ग्रुप के मिलावट को पता लगाकर उन्हें एक ही ग्रुप में संघटित कर देने देता है। यह मोडल आपको bureaucrat और inactive के मिश्रण से बने "inactive-bureaucrat" या threadmoderator और patroller के मिश्रण से बने "half-admin" या आपकी मर्ज़ी, जैसे "मेटा-ग्रुप" बनाने देता है।

UserTagsJS.modules.implode = {
	'inactive-bureaucrat': ['bureaucrat', 'inactive'], // 'inactive-bureaucrat' जोड़ देता है पर "ब्यूरोक्रैट" और "अक्रिय" भी हटा देता है
                                                           // यानि, "अक्रिय" और "ब्यूरोक्रैट" को 'inactive-bureaucrat' से बदल देता है
	'inactive-sysop': ['sysop', 'inactive'],
	'half-sysop': ['threadmoderator', 'patroller', 'rollback']
};

जैसा कि आप देख सकते हैं, यह meta-filter जैसा ही है, पर यह उसका उल्टा करता है।

एक्सप्लोड[]

डिफ़ॉल्ट से सक्षम: नहीं
ग्रुप/टैग: आपका विकल्प
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह ऊपर दिए implode जैसा ही है, पर इस में जोड़ने की कोई बात नहीं है। यानि, यहाँ दिए समूहों को हटाया नहीं जाएगा।

UserTagsJS.modules.explode = {
	'vandal-patrol': ['rollback', 'patroller'] // 'vandal-patrol' ग्रुप जोड़ देता है, पर "रोलबैक" और "पट्रोलर" नहीं हटाता
};

ब्लॉक होने पर छिपा दें[]

डिफ़ॉल्ट से सक्षम: हमेशा - बलपूर्वक
ग्रुप/टैग: कोई नहीं/उन्हें हटाता है, जोड़ता नहीं
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मोडल 'blocked' ग्रुप के आलावा ब्लॉक किए गए सदस्यों से सारे ग्रुप हटा देता है। यह मोडल हमेशा बलपूर्वक सक्षम होता है, पर आप इसे स्पष्ट रूप से अक्षम कर सकते हैं। आम तौर पर, आपको इसे सक्षम रखना चाहिए ताकि ब्लॉक किए गए सदस्यों को अक्रिय मार्क न किया जाए, या ब्लॉक होने से पहले ऊन्होने न्यूनतम संख्या के सम्पादनाएँ न किए होने पर उन्हें नया सदस्य न माना जाए।

UserTagsJS.modules.stopblocked = false; // इसे अक्षम कर देता है

ब्लॉक किया गया है?[]

डिफ़ॉल्ट से सक्षम: हाँ
ग्रुप/टैग: कोई नहीं/उन्हें हटाता है, जोड़ता नहीं
गुमनाम सदस्यों के लिए काम करता है: हाँ

यह मोडल यह पता लगता है कि किसी दिए सदस्य को ब्लॉक किया गया है या नहीं:

UserTagsJS.modules.isblocked = false; // ओएसिस में अक्षम कर देता है (डिफ़ॉल्ट से ट्रू [on]);

ओएसिस टैग[]

यह मॉडल इंटरनल रूप से मौजूद है और इसे कॉन्फ़िगर नहीं किया जा सकता। इसे यहाँ बस स्क्रिप्ट के व्यवहार को समझाने के लिए दिया गया है।

इस स्क्रिप्ट का काम है ओएसिस (फैनडम द्वारा दिए गए) टैगों को पढ़कर उन्हें उनके अर्थों में अनुवाद करना करना ('blocked' और 'sysop', 'staff', 'soap' जैसे डिफ़ॉल्ट ग्रुप ओएसिस में यहीं से आते हैं)। custom की मदद से बिल्ट-इन ग्रुपों का इस्तेमाल करते समय यह आपके सुविधा के लिए अपने-आप user-identity-box-group- मैसेजें फेच कर देता है।

उदाहरण[]

// मूल कॉन्फ़िगरेशन। हम दो कस्टम टैग जोड़ते हैं और बिल्ट-इन "साईसॉप" टैग के टेक्स्ट को बदलते हैं
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' }, // "Administrator" को "Addermin" में बदल देगा
		'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; // ३५ दिनों तक सम्पादना न देने पर सक्रीय
UserTagsJS.modules.mwGroups = ['bureaucrat']; // ब्यूरोक्रैट सदस्यों के लिए ब्यूरोक्रैट टैग
UserTagsJS.modules.metafilter = {
	sysop: ['bureaucrat'], // ब्यूरोक्रैट सदस्यों से एडमिनिस्ट्रेटर हटाता है
	hello: ['muckraker'], // 'muckraker' ग्रुप वाले सदस्यों से 'hello' ग्रुप हटा देता है
	'vandal-patrol': ['mini-sysop'] // 'mini-sysop' ग्रुप से 'vandal-patrol' हटा देता है
};
UserTagsJS.modules.userfilter = {
	'John Smith': ['inactive'] // "John Smith" कभी अक्रिय नहीं होता, भले ही वह हो
};
UserTagsJS.modules.implode = {
	'mini-sysop': ['patroller', 'rollback', 'threadmoderator'] // पट्रोलर, रोलबैक और चैट-मॉडरेटर - तीनों के होने पर '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

इस चित्र में ३ कस्टम टैग - "JavaScript", "CSS" और "Templates", और दो मीडियाविकि ग्रुप - "sysop" और "bureaucrat" हैं। अनुक्रम पर भी ध्यान दें: पहले "Administrator" टैग है, फिर "Bureaucrat", और ऐसे ही।

हम पहले स्क्रिप्ट को कॉन्फ़िगर करते हुए शुरू करेंगे, और बाद में रंग को जोड़ेंगे। पहला स्टेप है कस्टम ग्रुप और टैग को बनाना:

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 } // आम अनुक्रम ० है
	}
};

यह सारे टैगों को चित्र में दिए टैगों के अनुक्रम के हिसाब से जोड़ देगा। आप इस बात पर भी गौर कर सकते हैं कि मैंने bureaucrat ग्रुप के लिए आंशिक टैग जोड़ा है - यह इसलिए क्योंकि ब्यूरोक्रैट एक बिल्ट-इन ग्रुप है और इसके पास पहले से ही टेक्स्ट अनुवाद हैं, जिन्हें मुझे बदलने की ज़रुरत नहीं। मुझे साईसॉप ग्रुप के लिए भी कुछ बदलने की ज़रुरत नहीं, क्योंकि यह सारे मीडियाविकि ग्रुपों की तरह डिफ़ॉल्ट में ० पर पहले से ही है। ध्यान रखें की टैगों को उनके दिए order पैरामीटर के हिसाब से छोटे (शुरुआत) से बड़े (आखिर) तक छाँटा जाता है। मेरे दिए संख्याएँ तो मनमाने हैं, जब तक हर टैग के पास एक अलग संख्या है, इस बात से कोई फरक नज़र नहीं आएगा। सामान order संख्या के टैगों को बेतरतीब ढंग से अनुक्रमित किया जाएगा [वे अलग order वैल्यू वाले टैग से सम्बंधित मामले में अपनी जगह पर ही रहेगा, पर सामान संख्या के order वैल्यू के टैगों से सम्बंधित मामले में बेतरतीब होंगे]। कई विशिष्ट संख्याएँ हैं जो आपको उपयोगी लग सकती हैं:

संख्या महत्त्व
0 इस वैल्यू के टैग शुरुआत में जोड़े जाएंगे। सारे मीडियाविकि ग्रुप टैग डिफ़ॉल्ट से इस वैल्यू पर होते हैं। ध्यान रखें कि सामान वैल्यू के टैगों को एक दुसरे से सम्बंधित मामले में बेतरतीब रूप से अनुक्रमित किया जाता है।
1e100 10100. यह टैगों का डिफ़ॉल्ट वैल्यू है, यह ज़रूर बहुत बड़ा है तो बिना अनुक्रम के टैगों को आम तौर पर आखिर में जोड़ा जाता है, सिवाय newuser/nonuser/notautoconfirmed ग्रुपों के, जिन का अनुक्रम "10101" है।
1/0 सकारात्मक अनंतता। यह सबसे बड़ा संभव वैल्यू है। इस वैल्यू का कोई भी टैग हमेशा बिलकुल आखिर में रहेगा। inactive इसका डिफ़ॉल्ट रूप से इस्तेमाल करता है।
-1/0 नकारात्मक अनंतता। यह सबसे छोटा संभव वैल्यू है। ब्लैकलिस्ट किए गए टैगों के आलावा इस वैल्यू का कोई भी टैग हमेशा बिकुल शुरुआत में रहेगा।

अब जब हमने ग्रुप और टैग ठीक से बना लिया है, अब बारी है इन्हे जोड़ने की। हमारे कस्टम ग्रुप/टैग का इस्तेमाल करने के लिए, हमें जाहिर रूप से कस्टम मोडल का इस्तेमाल करना होगा, जो हम अभी करने वाले हैं:

UserTagsJS.modules.custom = {
	'Lunarity': ['csshelper', 'templatehelper', 'jshelper'] // नोट: इस लिस्ट के अनुक्रम से कोई फरक नहीं पड़ेगा
};

अगर आपने कस्टम मोडल का विवरण पढ़ा है, आप यह देख सकते हैं कि यह दिए गए सदस्य पर ३ ग्रुप जोड़ देता है। ज़्यादा मुश्किल नहीं है; और भी सदस्य जोड़ने के लिए हम बस बाकियों को भी लिस्ट में जोड़ सकते हैं।

हम अब आधे-रास्ते पर हैं; अब हमें ब्यूरोक्रैट और एडमिन टैग जोड़ना है। ऐसा करने के लिए हम मीडियाविकि समूहों का इस्तेमाल करेंगे। मीडियाविकि समूह अपने आप सर्वर को ग्रुप के लिए पूछता है, ताकि हमें लिस्ट में खुद ही हर सदस्य के ग्रुप को न जोड़ना पड़े, क्योंकि यह और कुछ नहीं, बस समय की बर्बादी है।

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

बहुत ही आसान है। यह स्क्रिप्ट अब सर्वर को सदस्य के ग्रुप सदस्यता के लिए पूछेगा, और अगर सर्वर कहता है कि वह "साईसॉप" और "ब्यूरोक्रैट" ग्रुपों में पहले से ही है, यह स्क्रिप्ट अपने-आप ही सदस्य पर दोनों टैगों को जोड़ देगा। [और इसे उलझाव से सर्वर से "साईसॉप" और "ब्यूरोक्रैट" के लिए टेक्स्ट अनुवाद भी मिल जाता है, और इंटरनल डिफ़ॉल्ट टेक्स्ट यहीं से आता है।]

आखिर में, हम चित्र के हिसाब से टैगोों के लिए रंग जोड़ेंगे। ऐसा करने के लिए हम MediaWiki:Common.css पर कुछ कस्टम CSS नियम लिखेंगे। UI पर हर टैग का अपना एक CSS क्लास है जो उस ग्रुप से आती है जिस ने इसे जनरेट किया है; उदाहरणस्वरूप, "Bureaucrat" का CSS क्लास है usergroup-bureaucrat। हमारे कस्टम टैगों के CSS क्लास होंगे usergroup-jshelper, usergroup-csshelper और usergroup-templatehelper

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

और यह हो गया।

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'];

आप अक्रिय और कई दुसरे मोडलों को भी सक्षम कर सकते हैं।

ओएसिस मास्टहैड को फिर से स्टाइल करना[]

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

ये मीडियाविकि समूह भी मौजूद हैं तो आप इन्हें बदलने से भी बचना चाहेंगे, अगर आप जानबूझ कर इन्हे न बदल रहे हो तो:

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

ध्यान रखें कि इस दुसरे लिस्ट में डिफ़ॉल्ट टेक्स्ट नहीं है, अगर आप इन्हे ढूंढ़ने के लिए कॉन्फ़िगर किए गए mwGroups मोडल का इस्तेमाल न कर रहे हो तो। ये मीडियाविकि ग्रुप कहने पर ही टैग टेक्स्ट डाउनलोड करेंगे; अन्यथा, बस पहले लिस्ट के ग्रुपों पर ही आपको एक डिफ़ॉल्ट नाम मिलेगा।

बाधें[]

कुछ फैनडम द्वारा दिए गए टैगों को किसी भी सदस्य द्वारा बदला या हटाया नहीं जा सकता।

  • staff - फैनडम स्टाफ
  • soap - स्पैम ऑब्लिटरेशन एंड प्रिवेंशन

इन ग्रुपों के टेक्स्ट हमेशा रखे जाएंगे और ये टैग हमेशा पंक्ति के बाए तरफ, यानी शुरुआत में ही होंगे। पर आप इन टैगों को लिंक में बदल और उन पर होवर इफ़ेक्ट डाल सकते हैं। बस उनके टेक्स्ट को बदला नहीं जा सकता।

"Founder", "Admin", "Blocked", आदि जैसे आम फैनडम टैगों को आम रूप से ही बदला जा सकता है।

इन "प्रोटेक्ट" किए गए ग्रुपों के टेक्स्ट को बदलने के लिए आप सर्वर पर उन मीडियाविकि पृष्ठों को सम्पादित कर सकते हैं जिन में उनके अनुवादित डेटा हैं। ये मैसेज हैं:

कृपया सावधानी से विचार करें और इन्हे सम्पादित करते समय व्यावहारिक बुद्धि का इस्तेमाल करें; ये स्टाफ और SOAP सदस्यों को आसानी से पहचाने जाने के लिए हैं। उन टैगों के टेक्स्ट को बदल देने पर अपरिचित सदस्यों के लिए उन्हें ढूंढ़ना मुश्किल हो जाएगा।

नोट: UserTags का एक इंटरनल कैश है, और ऊपर दिए आइडेंटिटी ग्रुप के टैगों में बदलावों को दिखने में कम-से-कम एक घंटा लग सकता है। पर्ज न करने पर खामियां भी आ सकती हैं, जैसे कि स्टाफ टैग के लिंक का ठीक से काम न करना। कैश localStorage में है; आप अपने कुकीयाँ साफ़ कर उन्हें डिलीट हो जाने पर मजबूर कर सकते हैं, हालाँकि या अनुशंसित नहीं है।