欢迎来到奇葩栖息地!欢迎加入Discord服务器:XfrfHCzfbW欢迎加入QQ频道:r01m9y3iz6请先至特殊:参数设置验证邮箱后再进行编辑。特殊:参数设置挑选自己想要使用的小工具!不会编辑?请至这里学习Wikitext语法。

MediaWiki:Gadget-protectionLocks.js

来自奇葩栖息地

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
// [[mcw:zh:MediaWiki:Gadget-protectionLocks.js]],CC BY-NC-SA 3.0
// Page protection indicators
// jshint jquery:true, esversion:5
/* globals require, module, mediaWiki, mw, OO */
'use strict';

function getImageThumbnailURL(name, store) {
	var encodedName = mw.util.wikiUrlencode(name);
	return "/w/images/"
		+ store
		+ "/"
		+ encodedName
}

function mimicIndicator(id, link, imgName, imgStore, title) {
	var encodedLink = mw.util.getUrl(link);
	return $("<div>")
		.attr("id", "mw-indicator-" + id)
		.addClass("mw-indicator")
		.append($("<a>")
			.attr({
				"href": encodedLink,
				"title": title
			}).append($("<img>")
				.attr({
				"alt": title,
				"src": getImageThumbnailURL(imgName, imgStore),
				"width": "25",
				"height": "25"
				})
			)
		);
}

$(function() {
	var protectionLevelData = mw.config.get("wgRestrictionEdit");
	if (protectionLevelData === null) {
		// Null on nonexistent or special pages. Avoids a crash there.
		return;
	}
	if (mw.config.get("wgAction") !== "view") {
		// No need to display the indicator when viewing history or editing the page
		return;
	}
	if (mw.config.get("wgIsMainPage")) {
		// The indicator lock breaks formatting on the main page due to the level 1 header being hidden
		return;
	}
	
	var protectionLevel = protectionLevelData[0];
	var namespaceNumber = mw.config.get("wgNamespaceNumber")
	if (protectionLevel === "autoconfirmed") {
		mimicIndicator(
			"protection-semi",
			"Project:自动确认用户",
			"Semi-protected page lock.svg",
			"6/6a",
			"此页面被半保护,只有注册用户可以编辑。"
		).appendTo($(".mw-indicators"));
	} else if (protectionLevel === "sysop") {
		if (namespaceNumber == 6) {
			mimicIndicator(
				"protection-full",
				"Project:管理员",
				"Upload protected page lock.svg",
				"7/77",
				"此文件被全保护,只有管理员可以上传。"
			).appendTo($(".mw-indicators"));
			} else {
			mimicIndicator(
				"protection-full",
				"Project:管理员",
				"Fully-protected page lock.svg",
				"b/b4",
				"此页面被全保护,只有管理员可以编辑。"
			).appendTo($(".mw-indicators"));
		}
	}
});