Khác biệt giữa bản sửa đổi của “MediaWiki:Common.js”
Giao diện
Nội dung được xóa Nội dung được thêm vào
Sửa các liên kết X / S trong đầu đề hộp điều hướng; xem Thảo luận Thành viên:Mxn#Bản mẫu trong các bài viết |
Sửa các hình tượng ngôi sao bên cạnh liên kết liên wiki chọn lọc và chất lượng tốt; xem Wikipedia:Thảo luận#Giao diện wiki |
||
Dòng 130: | Dòng 130: | ||
for ( var i = 0; i < InterwikiLinks.length; i++ ) { |
for ( var i = 0; i < InterwikiLinks.length; i++ ) { |
||
var className = InterwikiLinks[i].className.match(/interwiki-[-\w]+/); |
|||
if ( document.getElementById( className + "-fa" ) ) { |
|||
InterwikiLinks[i].className += " FA" |
InterwikiLinks[i].className += " FA" |
||
InterwikiLinks[i].title = "Liên kết này dẫn đến bài chọn lọc."; |
InterwikiLinks[i].title = "Liên kết này dẫn đến bài chọn lọc."; |
||
} else if ( document.getElementById( |
} else if ( document.getElementById( className + "-ga" ) ) { |
||
InterwikiLinks[i].className += " GA" |
InterwikiLinks[i].className += " GA" |
||
InterwikiLinks[i].title = "Liên kết này dẫn đến bài chất lượng tốt."; |
InterwikiLinks[i].title = "Liên kết này dẫn đến bài chất lượng tốt."; |
Phiên bản lúc 20:33, ngày 13 tháng 12 năm 2013
mw.loader.using( 'mediawiki.util', function() {
/* Bắt đầu of mw.loader.using callback */
/* Kết các đoạn mã lưu bên ngoài */
// Mã chỉ dành riêng cho trang sửa đổi
if (wgAction == 'edit' || wgAction == 'submit' || wgPageName == 'Đặc_biệt:Tải_lên')
{
importScript("MediaWiki:Common.js/edit.js")
}
// Mã chỉ dành riêng cho danh sách theo dõi
else if (mw.config.get('wgPageName') == 'Đặc_biệt:Danh_sách_theo_dõi') { //watchlist scripts
mw.loader.load(mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=MediaWiki:Common.js/watchlist.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400');
}
/**
* Đổi hướng User:Name/skin.js và skin.css sang trang skin hiện tại
* @source mediawiki.org/wiki/Snippets/Redirect_skin.js
* @rev 3
*/
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
// Make sure there was a part before and after the slash
// And that the latter is 'skin.js' or 'skin.css'
if ( titleParts.length == 2 ) {
var userSkinPage = titleParts[0] + '/' + mw.config.get( 'skin' );
if ( titleParts[1] === 'skin.js' ) {
window.location.href = mw.util.getUrl( userSkinPage + '.js' );
} else if ( titleParts[1] === 'skin.css' ) {
window.location.href = mw.util.getUrl( userSkinPage + '.css' );
}
}
}
/** addPortletLink sang mw.util
*/
window.addPortletLink = function() {
return mw.util.addPortletLink.apply( mw.util, arguments );
};
/** trích xuất thông số URL từ URL hiện tại **********
*
*/
window.getURLParamValue = function() {
return mw.util.getParamValue.apply( mw.util, arguments );
};
/** thông số URL &withCSS= và &withJS= *******
* Cho phép các mã script tùy chọn từ không gian MediaWiki
* không cần sửa file cá nhân như .css or .js
*/
var extraCSS = mw.util.getParamValue("withCSS");
if ( extraCSS && extraCSS.match(/^MediaWiki:[^&<>=%]*\.css$/) ) {
importStylesheet(extraCSS);
}
var extraJS = mw.util.getParamValue("withJS");
if ( extraJS && extraJS.match(/^MediaWiki:[^&<>=%]*\.js$/) ) {
importScript(extraJS);
}
/* Script dành cho Internet Explorer */
if ($.client.profile().name == 'msie') {
/** Sửa lỗi Internet Explorer **************************************************
*
* Chức năng: Sửa lỗi thanh cuộn ngang trong IE
* Người bảo trì: [[en:User:Tom-]]?
*/
var oldWidth;
var docEl = document.documentElement;
var fixIEScroll = function() {
if (!oldWidth || docEl.clientWidth > oldWidth) {
doFixIEScroll();
} else {
setTimeout(doFixIEScroll, 1);
}
oldWidth = docEl.clientWidth;
};
var doFixIEScroll = function () {
docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
};
document.attachEvent("onreadystatechange", fixIEScroll);
document.attachEvent("onresize", fixIEScroll);
// Trong bản in IE (7?) không làm đậm dòng
mw.util.addCSS('@media print { sup, sub, p, .documentDescription { line-height: normal; } }');
// Lỗi tràn trong IE
mw.util.addCSS('div.overflowbugx { overflow-x: scroll !important; overflow-y: hidden !important; } '
+ 'div.overflowbugy { overflow-y: scroll !important; overflow-x: hidden !important; }');
// Sửa lỗi thu phóng trong IE
// Dùng để sửa quyền chuyển div/table trong bảng
mw.util.addCSS('.iezoomfix div, .iezoomfix table { zoom: 1; }');
// Nhập mã kịch bản riêng cho Internet Explorer 6
if ($.client.profile().versionBase == '6') {
importScript('MediaWiki:Common.js/IE60Fixes.js');
}
}
/* Sửa kết xuất phông chữ Windows */
if ($.client.profile().platform == 'win') {
mw.util.addCSS('.IPA, .Unicode { font-family: "Arial Unicode MS", "Lucida Sans Unicode"; }');
}
/* Kiểm tra một thành phần HTML có "class" nào đó hay không
*
* @deprecated: Sử dụng $(phần tử).hasClass() thay thế.
*/
window.hasClass = ( function() {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
/** Liên kết interwiki đến các bài chọn lọc ***************************************
*
* Chức năng: Chuyển dấu chấm trước các liên kết liên wiki của các bài chọn lọc
* thành dấu sao
* Người bảo trì: [[en:User:R. Koot]]
*/
function LinkFA() {
if ( document.getElementById( "p-lang" ) ) {
var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
for ( var i = 0; i < InterwikiLinks.length; i++ ) {
var className = InterwikiLinks[i].className.match(/interwiki-[-\w]+/);
if ( document.getElementById( className + "-fa" ) ) {
InterwikiLinks[i].className += " FA"
InterwikiLinks[i].title = "Liên kết này dẫn đến bài chọn lọc.";
} else if ( document.getElementById( className + "-ga" ) ) {
InterwikiLinks[i].className += " GA"
InterwikiLinks[i].title = "Liên kết này dẫn đến bài chất lượng tốt.";
}
}
}
}
mw.hook("wikipage.content").add(LinkFA);
/**
* Biểu tượng trên cùng góc phải.
*
* @source: //www.mediawiki.org/wiki/Snippets/Top_icons
* @rev: 2
*/
mw.hook("wikipage.content").add(function () {
$( '.right-uppermost' ).prependTo( '#firstHeading' ).show();
});
/** Bảng ẩn/hiện *********************************************************
*
* Chức năng: Cho phép bản mẫu có thể ẩn đi lại, chỉ hiện tiêu đề. Xem
* [[en:Wikipedia:NavFrame]].
* Người bảo trì:
*/
var autoCollapse = 2;
var collapseCaption = "ẩn";
var expandCaption = "hiện";
window.collapseTable = function (tableIndex, fast) {
var toggleLink = $("#collapseButton" + tableIndex);
var table = $("#collapsibleTable" + tableIndex);
if ( !table.length || !toggleLink.length ) {
return false;
}
var rows = table.find("tr");
var slidingOptions = {
duration: fast ? 0 : undefined
};
if (toggleLink.text() === collapseCaption) {
rows.slice(1).fadeOut(slidingOptions);
toggleLink.text(expandCaption);
}
else {
if (rows.first().is(":hidden")) {
rows.slice(1).fadeOut(slidingOptions);
}
else {
rows.slice(1).fadeIn(slidingOptions);
}
toggleLink.text(collapseCaption);
}
};
function createCollapseButtons() {
/* chỉ thêm nút nếu có hàng đầu để ấy */
var tables = $("table.collapsible:has(tr th)");
tables.each(function (i, table) {
$(table).attr("id", "collapsibleTable" + i);
var header = $(table).find("tr th").first();
header.addClass("collapsible-header");
var toggleLink = $(mw.html.element("a", {
id: "collapseButton" + i,
href: "#"
}));
toggleLink.css("color", header.css("color"));
toggleLink.append(collapseCaption);
header.click(function (evt) {
var target = $(evt.target);
if (target.is(toggleLink) || !(target.is("a") || target.parents("a").length)) {
window.collapseTable(i);
evt.preventDefault();
}
});
var toggleButton = $(mw.html.element("span", {
"class": "collapseButton" // kiểu mẫu được định rõ trong Common.css
}));
toggleButton.append("[");
toggleButton.append(toggleLink);
toggleButton.append("]");
header.prepend(toggleButton);
});
tables.each(function (i, table) {
if ($(table).hasClass("collapsed") ||
(tables.length >= autoCollapse && $(table).hasClass("autocollapse")) ||
$(table).hasClass("innercollapse") && table.parents(".outercollapse").length) {
window.collapseTable(i, true /* fast */);
}
});
}
mw.hook("wikipage.content").add(createCollapseButtons);
/** Thanh Chuyển hướng Động ****************************************************
*
* Chức năng: Xem [[en:Wikipedia:NavFrame]].
* Người bảo trì:
*/
/**
* Thêm nút hiện/ẩn vào thanh chuyển hướng.
*/
function createNavigationBarToggleButton() {
// thiết lập các từ trong ngôn ngữ của chúng ta
var hideText = "[" + collapseCaption + "]";
var showText = "[" + expandCaption + "]";
$("div.NavFrame").each(function (i, frame) {
var isCollapsed = $(this).hasClass("collapsed");
$(mw.html.element("a", {
"class": "NavToggle",
href: "#"
}, isCollapsed ? showText : hideText)).appendTo($(this).find(".NavHead"));
$(this).find(".NavContent").makeCollapsible({
collapsed: isCollapsed,
$customTogglers: $(this).find(".NavHead, .NavToggle")
}).on("beforeExpand.mw-collapsible", function (evt) {
$(this).parents(".NavFrame").find(".NavToggle").text(hideText);
}).on("beforeCollapse.mw-collapsible", function (evt) {
$(this).parents(".NavFrame").find(".NavToggle").text(showText);
});
});
}
mw.hook("wikipage.content").add(function () {
mw.loader.using("jquery.makeCollapsible", function () {
createNavigationBarToggleButton();
});
});
/** Viết lại tựa bài và bỏ dòng "Hạn chế kỹ thuật" khi hiển thị một số tựa bài ***************************************
Hàm dước bản mẫu {{tựa sai}} sử dụng
Hàm này tìm
<div id="RealTitleBanner">
<span id="RealTitle">titre</span>
</div>
Nếu có thành phần id="DisableRealTitle" thì tắt hàm
*/
function rewritePageH1() {
var realTitleBanner = document.getElementById('RealTitleBanner');
if (realTitleBanner) {
if (!document.getElementById('DisableRealTitle')) {
var realTitle = document.getElementById('RealTitle');
var h1 = document.getElementsByTagName('h1')[0];
if (realTitle && h1) {
var titleText = realTitle.innerHTML;
if (titleText == '') h1.style.display = 'none';
else h1.innerHTML = titleText;
realTitleBanner.style.display = 'none';
}
}
}
}
mw.hook("wikipage.content").add(rewritePageH1);
/**
* MainPage-tab
* Làm cho tab "Bài viết" tại [[Trang Chính]] và các trang liên quan trở thành chữ "Trang Chính".
*
* @source: //www.mediawiki.org/wiki/Snippets/Main_Page_tab
* @rev: 2
*/
mw.hook("wikipage.content").add(function () {
var title = mw.config.get( 'wgTitle' );
// Tên của trang đầu, không có không gian tên.
var hasMainPageTab = (title == 'Trang Chính');
if ( hasMainPageTab ){
$( '#ca-nstab-main a' ).text( title );
}
});
/**
* WikiMiniAtlas
*
* Description: WikiMiniAtlas is a popup click and drag world map.
* This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
* The script itself is located on meta because it is used by many projects.
* See [[Meta:WikiMiniAtlas]] for more information.
* Maintainers: [[User:Dschwen]]
*/
( function () {
var require_wikiminiatlas = false;
var coord_filter = /geohack/;
$( document ).ready( function() {
$( 'a.external.text' ).each( function( key, link ) {
if ( link.href && coord_filter.exec( link.href ) ) {
require_wikiminiatlas = true;
// break from loop
return false;
}
} );
if ( $( 'div.kmldata' ).length ) {
require_wikiminiatlas = true;
}
if ( require_wikiminiatlas ) {
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );
}
} );
} )();
var wma_settings =
{
buttonImage: '//upload.wikimedia.org/wikipedia/commons/thumb/5/55/WMA_button2b.png/17px-WMA_button2b.png'
}
/* Cố định liên kết "Tải tập tin lên"
*/
mw.hook("wikipage.content").add(function() {
$("#t-upload a").attr("href", mw.util.getUrl("Wikipedia:Tải tập tin lên"));
});
/** Thông báo sửa đổi ma thuật ****************************************************
*
* Mô tả: Thêm thông báo sửa đổi cho trang định hướng và TSNDS.
* Maintainers: [[User:RockMFR]]
*/
function addEditIntro( name ) {
$( '.editsection a, #ca-edit a' ).each( function( i, el ) {
el.href = $(this).attr("href") + '&editintro=' + name;
});
}
if (wgNamespaceNumber === 0) {
mw.hook("wikipage.content").add(function(){
if ($('#disambigbox').length) {
addEditIntro('Bản_mẫu:Disambig_editintro');
}
});
mw.hook("wikipage.content").add(function(){
$("#mw-normal-catlinks a").each(function (i, elt) {
if (elt.title == 'Thể loại:Nhân vật còn sống' || elt.title == 'Thể loại:Nhân vật có thể còn sống') {
addEditIntro('Bản_mẫu:BLP_editintro');
return false;
}
});
});
}
/**
* Tải jQuery UI nếu cần.
*/
$(function () {
// Tải bảng kiểu cho [[Bản mẫu:Nút bấm]].
if ($(".ui-button").length) mw.loader.load("jquery.ui.button");
});
/**
* Chức năng: Ở lại máy chủ an toàn càng nhiều càng tốt
* Người bảo trì: [[en:User:TheDJ]]
*/
if ( document.location && document.location.protocol && document.location.protocol === 'https:' ) {
/* Các máy chủ an toàn mới */
importScript( 'MediaWiki:Common.js/secure new.js' );
}
/* Kết thúc mw.loader.using callback */
} );
// Results from Wikidata
// [[File:Wdsearch_script_screenshot.png]]
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' || ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
importScriptURI("//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript");
}
/* ĐỪNG THÊM MÃ DƯỚI DÒNG NÀY */