恪別𡧲版𢯢𢷮𧵑「MediaWiki:Common.js」
Keepout2010 (討論 | 㨂𢵰) 空固𥿂略𢯢𢷮 |
Keepout2010 (討論 | 㨂𢵰) 空固𥿂略𢯢𢷮 |
||
𣳔153: | 𣳔153: | ||
var autoCollapse = 2; | var autoCollapse = 2; | ||
var collapseCaption = " | var collapseCaption = "隱"; | ||
var expandCaption = " | var expandCaption = "現"; | ||
window.collapseTable = function (tableIndex, fast) { | window.collapseTable = function (tableIndex, fast) { |
版㵋一𣅶19:59、𣈜25𣎃12𢆥2018
mw.loader.using( ['mediawiki.util', 'mediawiki.notify', 'jquery.client'], function () { /* Đầu hàm gọi lại mw.loader.using() */ /* Kết các đoạn mã lưu bên ngoài */ if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' || mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' ) { // Mã chỉ dành riêng cho trang sửa đổi importScript("MediaWiki:Common.js/edit.js"); } else if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) { // Mã chỉ dành riêng cho danh sách theo dõi importScript( 'MediaWiki:Common.js/watchlist.js' ); } /** * Sửa bố cục Trang Chính * * Miêu tả: Thêm một liên kết bổ sung đến danh sách đầy đủ các phiên bản ngôn ngữ hiện có. * Bảo trì: [[:en:User:AzaToth]], [[:en:User:R. Koot]], [[:en:User:Alex Smotrov]] */ if ( mw.config.get( 'wgPageName' ) === 'Trang_Chính' || mw.config.get( 'wgPageName' ) === 'Thảo_luận:Trang_Chính' ) { $( function () { mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/w/index.php?title=List_of_Wikipedias&uselang=vi', 'Danh sách đầy đủ', 'interwiki-completelist', 'Danh sách đầy đủ các phiên bản Wikipedia' ); } ); } /** * Đổ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 * * @deprecated: Hãy dùng mw.util.addPortletLink thay thế. */ mw.log.deprecate( window, 'addPortletLink', function () { return mw.util.addPortletLink.apply( mw.util, arguments ); }, 'Hãy dùng mw.util.addPortletLink() thay thế' ); /** * Trích xuất thông số URL từ URL hiện tại * * @deprecated: Hãy dùng mw.util.getParamValue và thoát ký tự đàng hoàng */ mw.log.deprecate( window, 'getURLParamValue', function () { return mw.util.getParamValue.apply( mw.util, arguments ); }, 'Hãy dùng mw.util.getParamValue() thay thế' ); /** * Kiểm tra một phân tử HTML có lớp nào đó hay không * * @deprecated: Hãy dùng $(element).hasClass() thay thế. */ mw.log.deprecate( window, 'hasClass', function ( element, className ) { return $( element ).hasClass( className ); }, 'Hãy dùng jQuery.hasClass() thay thế' ); /** * 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 tập tin * cá nhân như .css or .js. * * @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL * @rev 5 */ // CSS var extraCSS = mw.util.getParamValue( 'withCSS' ); if ( extraCSS ) { if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) { importStylesheet( extraCSS ); } else { mw.notify( 'Chỉ cho phép tải bảng kiểu từ không gian tên MediaWiki.', { title: 'Giá trị withCSS không hợp lệ' } ); } } // JS var extraJS = mw.util.getParamValue( 'withJS' ); if ( extraJS ) { if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) { importScript( extraJS ); } else { mw.notify( 'Chỉ cho phép tải kịch bản từ không gian tên MediaWiki.', { title: 'Giá trị withJS không hợp lệ' } ); } } /* Tải kịch bản dành cho Internet Explorer */ if ( $.client.profile().name === 'msie' ) { importScript( 'MediaWiki:Common.js/IEFixes.js' ); } /* Sửa kết xuất phông chữ Unicode trên Windows XP */ if ( navigator.appVersion.search(/windows nt 5/i) !== -1 ) { mw.util.addCSS( '.IPA { font-family: "Lucida Sans Unicode", "Arial Unicode MS"; } ' + '.Unicode { font-family: "Arial Unicode MS", "Lucida Sans Unicode"; } ' ); } /** 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.indexOf( "badge-featuredarticle" ) === -1 ) { 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.indexOf( "badge-goodarticle" ) === -1 ) { 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 = "隱"; var expandCaption = "現"; 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" }, 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); }); }); } /** * Thêm nút hiện/ẩn vào thanh chuyển hướng navbox. */ 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" }, isCollapsed ? showText : hideText)).appendTo($(this).find(".NavHead")); $(this).find(".NavContent").makeCollapsible({ collapsed: isCollapsed, $customTogglers: $(this).find(".NavHead, .NavToggle") }).on("beforeExpand.mw-collapsible mw-collapsed", function (evt) { $(this).parents(".NavFrame").find(".NavToggle").text(hideText); }).on("beforeCollapse.mw-collapsible mw-collapsed", function (evt) { $(this).parents(".NavFrame").find(".NavToggle").text(showText); }); }); } mw.hook("wikipage.content").add(function () { mw.loader.using("jquery.makeCollapsible", 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 && mw.config.get("wgNamespaceNumber") === 0) { 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; document.title = document.title.replace(mw.config.get("wgPageName").replace(/_/g, " "), realTitle.textContent); } realTitleBanner.style.display = 'none'; } } } } mw.hook("wikipage.content").add(rewritePageH1); /** * Gắn bảng giới thiệu vào đầu [[Trợ giúp:Chỗ thử]]. */ mw.hook("wikipage.content").add(function () { if (mw.config.get("wgPageName") != "Trợ_giúp:Chỗ_thử" || mw.config.get("wgAction") != "view" || $("#sandbox-intro").length) { return; } var purgeLink = mw.html.element("a", { href: mw.util.getUrl("Trợ_giúp:Chỗ_thử", { action: "edit", oldid: "15257082", summary: "Tẩy trống chỗ thử", minor: "yes" }) }, "xóa định kỳ"); var editText = mw.html.element("b", { "style": "white-space: nowrap;" }, $("#ca-ve-edit").text()); var intro = $(mw.html.element("div", { "class": "plainlinks toccolours", id: "sandbox-intro" }, new mw.html.Raw("Đây là trang bạn có thể thử thoải mái cách soạn bài " + "trong Wikipedia. Nội dung ở đây sẽ bị " + purgeLink + ". Để bắt đầu sửa đổi trang này, hãy nhấn chuột vào thẻ " + editText + " ở trên."))); $("#mw-content-text").wrapInner("<div class='sandbox'></div>").prepend(intro); }); /** * Chọn chế độ sửa đổi theo cookie khi bấm liên kết đỏ. */ mw.hook("wikipage.content").add(function () { if (mw.cookie.get("VEE", "") === "wikitext") { $(".noarticletext, .searchresults h2").find("a").each(function (idx, elt) { var uri = new mw.Uri(elt.href); if ("veaction" in uri.query) { uri.query.action = uri.query.veaction; elt.href = uri.toString(); } }); } }); /** * 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: [[:en: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 ) { $( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function ( i, el ) { el.href = $( this ).attr( 'href' ) + '&editintro=' + name; } ); } if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) { $( function () { if ( document.getElementById( 'disambig' ) ) { addEditIntro( 'Bản_mẫu:Disambig_editintro' ); } } ); $( function () { var cats = mw.config.get('wgCategories'); if ( !cats ) { return; } if ( $.inArray( 'Nhân vật còn sống', cats ) !== -1 || $.inArray( 'Nhân vật có thể còn sống', cats ) !== -1 ) { addEditIntro( 'Bản_mẫu:BLP_editintro' ); } } ); } /** * Cho phép hiện/ẩn phần tử tùy công cụ Biên dịch nội dung được kích hoạt. */ mw.hook("wikipage.content").add(function () { if (parseInt(mw.user.options.get("cx")) === 1) { $(document.documentElement).addClass("cx-available"); } }); /** * 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 quả từ Wikidata // [[:Tập tin: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"); } /* Kết hàm gọi lại mw.loader.using() */ } ); /* ĐỪNG THÊM MÃ DƯỚI DÒNG NÀY */