Fandom Developers Wiki
Advertisement

有關創建模組的更多信息,請參見用戶標籤/擴展功能頁面

用戶標籤(UserTags)是一個在用戶檔案上能夠新增、移除、修改與重新排列標籤的腳本(「創始人」、 「管理員」、 「封禁」等出現在用戶全局檔案中用戶名旁邊的標籤)。 除了FANDOM本身的預設標籤之外,它允許您能根據需要來自行新增、移除與重新排列標籤。您也可以在認為合適的情況下自行發明客製化標籤並授予給用戶。

這個腳本同時結合了休假中用戶用戶勳章的功能-因此您只需要使用其中一個腳本以避免發生任何的腳本衝突。用戶標籤是一個最新的腳本且擁有最多的功能與自定義選項。

參見訊息牆用戶標籤查看論壇(並非指討論版)與訊息牆的「標籤」信息。

安裝方法

添加以下程式碼至個別維基的MediaWiki:ImportJS頁面:

dev:UserTags/code.js

然後,您還需要添加以下CSS至MediaWiki:Wikia.css

a.tag {
    color: inherit;
}

最後,添加此CSS至MediaWiki:Monobook.css

.tag:before {
    content: '['
}

.tag:after {
    content: ']'
}

.tag {
    font-size: 10pt;
    vertical-align: middle;
}

.tag-container > .tag:first-child {
    margin-left: 1ex;
}

完成以上程序後,基本的功能就大致構建完成了;然而,如果您想要自訂標籤,那麼請繼續瀏覽以下配置部分。

配置

這個腳本擁有大量的功能,因此以下解說的部分將有點冗長。您不需要瀏覽全部;事實上有些沒有要使用到的功能是可以忽略的 。您可以會想略過以下所有的例子說明,然後回到核心配置部分來瀏覽閱讀。 Template:Bgcolor

核心配置

添加以下程式碼至Common.js: (來源

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

有一件事您必須的事是用戶是被劃分在不同的用戶組別裡,像是「封禁」、「管理員」、「行政員」或「休假中」等組別。這些組別在系統裡是以內部名稱來使用,因此在最後它們必須顯示在屏幕上,若要做到這一點,我們需要將這些內部名稱轉換為標籤使用。因為標籤說明了在屏幕背後所實際呈現的內容。

讓我們舉一個簡單的例子,我們假設您想要創建三個新標籤:「本月最佳編輯者(Editor of the Month)」、「精選用戶(Featured)」與「模版領袖(Template Guru)」。要做到這一點,我們需要創建「montheditor」、「featured」與「template」組別。

window.UserTagsJS = {
	modules: {},
	tags: {
		// 用戶組別: { 相關標籤數據 }
		montheditor: { u:'Editor of the Month' },
		featured: { u:'Featured' },
		templates: { u:'Templates Guru' }
	}
};

一般而言,當您在創建新的組別與標籤時,這樣設定就已經足夠了,除了這個設定的預設是將標籤置於用戶檔案的最尾端。當您反而想要將這些標籤置於最前端時,您需要控制它的順序(order),因此您需要使用order配置選項。

window.UserTagsJS = {
	modules: {},
	tags: {
		montheditor: { u:'Editor of the Month', order:-1/0 },
		featured: 'Featured',
		templates: 'Templates Guru'
	}
};

這個order參數是一個從負無限大到正無限大之間的數值,較小的數字較接近初始值。在這個情況下,-1/0是一個負無限大的數值,因此此時標籤就會置於最前端。

您可以使用以下的任何參數來設計您的標籤:

參數 說明 類型 默認值
u 這個文本顯示當〔被標籤〕的用戶是一個未知姓別(即沒有在選項中設定性別)。 文本 依需求設定
m 這個文本顯示當〔被標籤〕的用戶是一位男性 文本 如果設定被移除, 就會以u值取代。
f 這個文本顯示當〔被標籤〕的用戶是一位女性 文本 如果設定被移除, 就會以u值取代。
order 控制整個標籤的順序。數字較小的會將標籤置於最前端而數字較大的則置於最尾端。 數值 10100
link 允許您可以為標籤添加連結至頁面或維基或互聯網上的任何網站。它可以接受一般的維基連結像是「Project:Administrators」或完整的URL像是「http://www.google.com/」。 若沒有設定,標籤則會顯示為純文本。請注意FANDOM以外的跨維基連結(像是「Wikipedia:Computer」)是不會運作,請使用完整的http://URL來替代。 文本
title 這個文本是用來設置當用戶的游標懸停在標籤上時的顯示方式。 文本

上述提及到的男性/女性/未設定的變數能支援英語以外的語言,像是義大利文,對男性/女性方面有不同的名稱來稱呼,在英文,或其它沒有區分性別的語言(即我們中文),您只能使用u(未知)欄位。 Template:Bgcolor/end Template:Bgcolor

覆蓋現有的標籤

有時候,現有存在的標籤可能無法滿足您的需要;也許您想要變更文字、控制或者為標籤添加一個連結。您可以簡單地在現有的用戶組別自訂您的標籤:

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { u:'Bureaucrat Tag', link:'Project:Bureaucrats' },
		inactive: { u: 'Has not edited recently' }
	}
};

設定完成後,系統會將行政員標籤由「Bureaucrat」顯示為「Bureaucrat Tag」並添加一個連結至Project:Bureaucrats頁面,休假中標籤則由「Inactive」顯示為「Has not edited recently」。另外,有時您可能希望只添加連結但不變更文字,您也可以這樣做:

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

完成後,系統會為行政員標籤添加一個連結並且將標籤至於最尾端但不會變更文字。【注意:不變更文字的情況僅適用於內建的用戶組別;對於由自己創建的組別,是無法在標籤上指定文字的】

疑難雜症:若內建的用戶組別含有連字號(-),此時您必須在組別名稱前後以引號(')括起來,這樣系統才會執行:

window.UserTagsJS = {
	modules: {},
	tags: {
		// 這是錯誤示範,系統將不會執行
		bot-global: { link:'Project:Bots' }

		// 這樣才是正確的
		'bot-global': { link: 'Project:Bots' }
	}
};

Template:Bgcolor/end Template:Bgcolor

打造樣式/外觀

這個腳本是設計用來使標籤更容易製作成不同的外觀,每個標籤在內建組別上都有其CSS class為根本並且以'usergroup-'作為開頭。比方說:行政員(Bureaucrat)標籤有其CSS class usergroup-bureaucrat、休假中(Inactive)標籤也有其usergroup-inactive class等等。您自訂的標籤也會有其選定的組別,例如「Editor of the Month」其根本就來自於CSS class的usergroup-montheditor

若要更改顏色或外觀,只需簡單地添加以下程式碼規則至MediaWiki:Wikia.css,即如下所示:

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

完成之後,系統會將行政員標籤顯示為金色、自訂的精選用戶標籤則會顯示為藍色。您可以依需要自行添加任何CSS指令,包括邊框、添加背景圖案等等。

.tag.usergroup-bureaucrat {
	/* 此自訂標籤會顯示為紅色邊框與自訂背景 */
	background-image: url("http://site.com/image.png");
	border: 3px red solid;
	border-radius: 0;
}
.tag.usergroup-featured:before {
	/* 於「Feautured」標籤之前新增圖案 */
	content: url("http://site.com/magnifying-glass.gif");
}

有一件事要注意的是,內建組別的名稱會被簡化為英文,如果您的組別含有「asd%$ü@xyzüü」等非英文字母,那麼最後您必須將組別名稱全數替換為英文,即usergroup-asdxyz。但除非必要,否則一般是不會添加非英文的字母,因為這些字符無法被其他維基的用戶看見。

所有由用戶標籤腳本製作或管理的標籤,其tag-container CSS class皆含有span元素。因此您可以運用這個原理將tag-container設定為display: block,這樣就可以把所有的標籤移動到新的一行了(預設的標籤是顯示與用戶名同一行)。具體的效果可以查看例子部分

最後,用戶檔案中每一行的第一個標籤都有其專屬的CSS class。舉例來說,若bureaucrat(行政員)的標籤位於該行的最前端(即為第一個標籤),那麼您會在#UserProfileMasthead看到'usergroup-bureaucrat'的附屬標籤。您可以運用這個原理來為標籤更換不同顏色或者添加背景圖片。要注意在預設情況下,FANDOM的標籤會從該行的最前端開始排列,但其它有些鎖起來的標籤(特別是職員標籤),是無法移動標籤的位置的。這意味著擁有職員權限的用戶是由'usergroup-staff'來控制管理的(即使他們可能同時擁有本地管理員權限)。 Template:Bgcolor/end Template:Bgcolor

控制標籤的位置

在腳本的程式碼中,oasisPlaceBefore選項允許用戶可以控制標籤在Oasis版面的定位。預設情況下,它們通常會被放在內建標籤之後,但是您還是可以透過特定的CSS(jQuery)選擇器來變更標籤的位置。舉例來說,如果您想要將標籤放在Hi(用戶名)之後但是在H2(暱稱)之前,那麼您需要複製以下程式碼:

window.UserTagsJS = {
	modules: {},
	tags: {},
	oasisPlaceBefore: '> h2' // Place tags before the H2
};

Template:Bgcolor/end

配置

有關創建新模組的開發者文檔,請參見/擴展

現在您已經領略了基本的概念,我們可以開始進行實際操作的階段了。這個腳本被分成好幾個模組,每個模組皆能單獨的開啟或關閉。您不需要閱讀以下所有的說明,您可能會想略過舉例的部分然後回到這裡選擇想要設定的模組。

以下列出了內建的模組以及其配置選項。有關創建自訂的模組是有可能實現的,或者您也可以額外導入由其它開發者創建的模組。如果您想要使用其它用戶撰寫的第三芳模組,那麼您需要閱讀以下由該開發者所提供的相關文檔。 Template:Bgcolor

休假中(不活躍)

Enabled by default:
Default value: 30
Associated Group/Tag: 休假中
Works with Anonymous Users:

本模組會新增休假中組別至配置間隔內沒有任何編輯的用戶,您需要輸入一組數字(這組數字即代表天數)來指定用戶在間隔多少天沒編輯會被系統視為休假中。

UserTagsJS.modules.inactive = 50; // 50 天

若您需要一套更嚴謹的條件,那麼您可以利用命名空間來過濾編輯。舉例來說。如果您只考慮編輯條目的用戶視為活躍,而其它皆視為休假中(即使有用戶在近期有編輯過討論頁或其它命名空間,但只要沒有編輯條目皆會被系統視為休假中),那麼您可以將配置的格式替換為以下的形式:

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0],
	zeroIsInactive: true // 條目編輯次數為0 = 休假中
};

0代表條目的命名空間。此命名空間可以擁有不同的變數值,也可以只輸入該命名空間的名稱(即不輸入任何前綴),舉例來說:

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0, 'Talk', 'User talk', 'Forum'] // Edits must be to articles or talk pages or user talk pages or the forum to count, others don't count
};

Template:Bgcolor/end Template:Bgcolor

MediaWiki用戶組別

Enabled by default: Yes
Default value: ['禁止聊天', '封禁', '機器人', '行政員', '聊天主持人', '用戶查核', '內容版主', '委員', 助手', '回退員', '職員', '管理員', '討論版主', '先鋒', '反破壞小組']
Associated Group/Tag: 根據您所提供的組別來排列
Works with Anonymous Users:

本模組會新增用戶的MediaWiki組別至內建的組別列表,並且自動從伺服器下載標籤文本的翻譯至那些用戶組別中。本模組用來處理正式的用戶組別,例如聊天主持人, 行政員, 管理員, 禁止聊天回退員等。完整的列表可參見Special:ListUsers

您可以使用本模組來控制想要顯示的用戶組別:

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

Template:Bgcolor/end Template:Bgcolor

沒有編輯的全局帳戶

Enabled by default:
Associated Group/Tag: nonuser
Works with Anonymous Users:

這個模組會為零編輯的用戶添加標籤。對於使用Oasis版面的用戶而言效果並沒有很顯著,因為您可以直接在用戶的全局檔案上看見該用戶的編輯次數。但對於使用Monobook的用戶而言效果就會很顯著。這個模組沒有任何的配置選項,如果需要的話,只需要開啟它即可:

UserTagsJS.modules.nonuser = true; // Switch on

對於更有經驗的用戶而言,如果想要開啟它,您只需要以定制化JavaSciprt的邏輯來思考就能運用自如,但僅限於Monobook版面:

UserTagsJS.modules.nonuser = (mediaWiki.config.get('skin') === 'monobook');

Template:Bgcolor/end Template:Bgcolor

新註冊的帳戶

Enabled by default:
Associated Group/Tag: notautoconfirmed
Works with Anonymous Users:

這個模組會為最近創建但沒有編輯的新帳戶添加標籤; 也就是說, 註冊未滿4天且在任一維基未達10次編輯用戶會有此標籤。若要辨識魁儡帳戶,這個模組可能會很有幫助且能迅速辨認出來。如果需要的話,只需要開啟它即可。

UserTagsJS.modules.autoconfirmed = true; // Switch on

注意編輯次數與註冊時間的長度並非由模組本身來決定,而是由FANDOM來控制決定的,因此我們無法自己控制這些設定。 Template:Bgcolor/end Template:Bgcolor

Advertisement