「MediaWiki:Common.js」修訂間的差異
跳至導覽
跳至搜尋
(fix) |
(fix bug) |
||
行 31: | 行 31: | ||
var frequency = 20 ; | var frequency = 20 ; | ||
var numOfPageLoad = 20; | var numOfPageLoad = 20; | ||
var wikiURL = location.origin; | var wikiURL = location.origin + '/rpgmakerwiki/'; | ||
var apiURL = location.origin + "/rpgmakerwiki/api.php" | var apiURL = location.origin + "/rpgmakerwiki/api.php" | ||
var namespaceUsed = [ | var namespaceUsed = [ |
於 2017年8月14日 (一) 16:05 的修訂
/* 顯示最新20筆*/ $(function(){ console.log('into plugin '); if($("#p-recentchanges").length == 0){ return } var NAMESPACES = { // 所有 namespace (命名空間)清單 "(主要)":"0", "討論":"1", "使用者":"2", "使用者討論":"3", "檔案":"6", "檔案討論":"7", "MediaWiki":"8", "MediaWiki討論":"9", "模板":"10", "模板討論":"11", "使用說明":"12", "使用說明討論":"13", "分類":"14", "分類討論":"15", "Gadget":"2300", "Gadget talk":"2301", "Gadget definition":"2302", "Gadget definition talk":"2303" } /* 排版調整 */ var storage = localStorage || {} var frequency = 20 ; var numOfPageLoad = 20; var wikiURL = location.origin + '/rpgmakerwiki/'; var apiURL = location.origin + "/rpgmakerwiki/api.php" var namespaceUsed = [ NAMESPACES["(主要)"], NAMESPACES["討論"], NAMESPACES["使用者討論"], NAMESPACES["檔案討論"], NAMESPACES["模板"], NAMESPACES["模板討論"], NAMESPACES["分類討論"] ] function loadCallback(data){ var list = $("<ul>") $($("#p-recentchanges").find(".body, .pBody")[0]) .after( $("<div class='body'>").append(list) ) .after($("<h3></h3>").css({"font-style": "italic"}).html("最新 " + numOfPageLoad + " 筆變動")) for(var i in data){ var rc = data[i] list.append($("<li>").append($("<a>").attr("href", wikiURL + "/?curid=" + rc.pageid).html(rc.title))) } } var lastUpdateTime = parseInt(new Date().getTime() / 1000 / frequency) * 1000 * frequency if(storage.lastUpdateTime && storage.lastUpdateTime >= lastUpdateTime){ loadCallback(JSON.parse(storage.recentchanges)) return } $.ajax({ url: apiURL, data: { action: "query", list: "recentchanges", format: "json", rcshow: "!redirect", rcnamespace: namespaceUsed.join("|"), rclimit: numOfPageLoad, rctoponly: true // 只列出最新編輯 }, dataType: "json", success: function(data){ storage.lastUpdateTime = lastUpdateTime storage.recentchanges = JSON.stringify(data.query.recentchanges) loadCallback(data.query.recentchanges) } }) });