MediaWiki 開發者手冊/新增 JavaScript/預定義變數
這些變數的使用已過時。請使用 mw.config 代替。因此,我們不再使用 "var wgCanonicalNamespace",而是使用 "var mw.config.get( 'wgCanonicalNamespace' )"。 |
var wgScript = "/w/index.php";
var wgArticlePath = "/wiki/$1":
var wgServer = "//wikibook.tw";
var wgCookiePrefix = "enwikibooks";
使用 wgServer 和 wgScript,您可以構建一個有效的維基 URL。這對於差異和其他操作連結非常有用。
要轉到維基媒體維基上的頁面,您知道 http://lang.family.org/wiki/article 會將您帶到您想要去的地方,但並非所有維基都具有 短 URL - 在這種情況下,使用 wgArticlePath 來了解如何構建文章路徑,或者直接使用 wgServer 和 wgScript。
變數 wgArticlePath 可以透過將 $1 替換為頁面標題來使用:wgArticlePath.replace(/$1/,"Main Page")。
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "MediaWiki_Developer\'s_Handbook/Add_JavaScript";
var wgTitle = "MediaWiki Developer\'s Handbook/Add JavaScript";
var wgAction = "view";
var wgIsArticle = true;
var wgCanonicalNamespace = "Special";
var wgCanonicalSpecialPageName = "Specialpages";
var wgNamespaceNumber = -1;
var wgPageName = "Special:SpecialPages";
var wgTitle = "SpecialPages";
規範名稱空間不會因本地化而改變。例如,在 kmwiki 上,他們的元資料或專案名稱空間具有 wgCanonicalNamespace == "Project",而在 km:ជំនួយ:Editing 上,wgCanonicalNamespace == "Help"。
同樣,每個名稱空間都有一個數字,從主名稱空間的零開始。這些數字是 可定製的。
這對於使指令碼可移植非常有用 - 您不必擔心瞭解名稱空間的本地化名稱 - 只需使用規範名稱或數字即可。
由於此頁面位於主名稱空間中,wgPageName == wgTitle,但在 華夏公益教科書:關於 上,情況並非如此。
var wgPageName = "Help:About";
var wgTitle = "About";
wgTitle 從不包含名稱空間字首,而 wgPageName 包含。還要注意,wgPageName 將空格替換為下劃線。
wgAction 是以下之一:
- view
- submit(點選儲存頁面、顯示預覽或顯示更改後)
- history
- edit
- delete
- protect
- purge(在進行
?action=purge以清除伺服器快取,強制重新渲染頁面時)
這揭示了使用者在當前頁面上的操作。請注意:對於使用者而言,在許多情況下,view、submit 和 purge 可能沒有區別。在某些情況下,您可能希望您的指令碼在所有這些情況下都執行。
wgAction 通常用於在不需要時避免執行整個指令碼。如果您的指令碼更改了頁面歷史記錄表單,那麼您可以執行以下操作:
if ( wgAction == 'history' ) {
addOnloadHook( changeHistoryForm() );
}
function changeHistoryForm() {
...
}
wgIsArticle 告訴您頁面是文章還是 特殊頁面。
var wgCanonicalNamespace = "Special";
var wgCanonicalSpecialPageName = "Specialpages";
var wgNamespaceNumber = -1;
var wgPageName = "Special:SpecialPages";
var wgTitle = "SpecialPages";
對於 特殊頁面,規範名稱空間為 "Special",而 wgCanonicalSpecialPageName 是特殊頁面的英文非 駝峰式 名稱。同樣,規範形式不會因本地化而改變,因此最好使用它。此外,所有特殊頁面都具有名稱空間編號 -1。
var wgUserName = "Mike.lifeguard";
var wgUserGroups = ["bureaucrat", "checkuser", "editor", "sysop", "*", "user", "autoconfirmed"];
var wgGlobalGroups = ["Global_rollback", "steward"];
使用者的使用者名稱設定為 wgUserName,他們的本地和全域性組位於陣列中。請注意,全域性組 全域性回滾 有一個下劃線,而不是空格。
這在指令碼的一部分需要使用者屬於特定使用者組(通常是 sysop)時非常有用。
function userIsInGroup( group ) {
// are they in a given local group?
if ( wgUserGroups ) {
if ( !group || group.length == 0 ) {
group = '*';
}
for(var i in wgUserGroups)
if (wgUserGroups[i]==group) return true;
}
return false;
}
if ( userIsInGroup( 'sysop' ) ) {
...
}