跳至內容

MediaWiki:Common.js

文出維基大典
本版日期︰二〇〇七年一二月一四日 (五) 一二時一三分;作者︰Itsmine

註:重取頁面,文方新焉。

  • Firefox / Safari:Shift 並點 重新載入,或合鍵 Ctrl-F5Ctrl-R(Mac 為 ⌘-R)。
  • Google Chrome:Ctrl-Shift-R(Mac為 ⌘-Shift-R)。
  • Internet Explorer:Ctrl 並點 重新整理,或合鍵 Ctrl-F5
  • Opera:須至 Tools → Preferences 清謄本(Mac 為 Opera → Preferences)。
// BEGIN Configuration for "star" logo in front of interwiki links to Featured Articles
 
 /** set to false in Special:Mypage/monobook.js to switch off this "feature" */
 var linkFA_enabled  = true;
 
 /** description that is displayed when cursor hovers above FA interwiki links */
 var linkFA_description = "他山之玉";
 
 // linkFA_bullet and linkFA_style werden nur für cologneblue, nostalgia and standard verwendet,
 // für monobook und simple siehe [[MediaWiki:Common.css]]
 
 /** image to use instead of the standard bullet (for cologneblue, nostalgia and standard */
 var linkFA_bullet = "/media/wikipedia/commons/d/d0/Monobook-bullet-star-transparent.png";
 
 /** style to use for the linkFA_bullet img */
 var linkFA_style = "margin-right: 0.2em;";
 
 /** 
 * star logo for featured articles in other languages,
 * see Template:Link_FA and MediaWiki:Common.css
 */
 function linkFA() {
     // early exit when disabled
     if (!linkFA_enabled) return;
 
     // skins need to be treated differently
     if (skin == "monobook" || skin == "simple") {
         newer();
     } 
     else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") {
         older();
     } 
 
     /** skin == "monobook" || skin == "simple" */
     function newer() {
         // links are to replaced in p-lang only
         var pLang = document.getElementById("p-lang");
         if (!pLang) return;
         var lis = pLang.getElementsByTagName("li");
         for (var i = 0; i < lis.length; i++) {
             var li = lis[i];
             // only links with a corresponding Link_FA template are interesting
             if (!document.getElementById(li.className + "-fa"))   continue;
             // additional class so the template can be hidden with CSS
             li.className += " FA";
             // change title
             li.title = linkFA_description;
         }
     }
 
     /** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */
     function older() {
         // these root elements can contain FA-links
         var rootIds = new Array("topbar", "footer");
         for (var i=0; i<rootIds.length; i++) {
             var rootId  = rootIds[i];
             var root    = document.getElementById(rootId);
             if (!root)  continue;
 
             // if the root exists, try to decorate all the links within
             var links   = root.getElementsByTagName("a");
             for (var j=0; j<links.length; j++) {
                 var link    = links[j];
                 decorate(link);
             }
         }
     }
 
     /** id necessary, modify a link to show the FA-star (older) */
     function decorate(link) {
         // exit if not a FA-link
         var lang    = link.title.split(":")[0]; // not precise enough
         var fa      = document.getElementById("interwiki-" + lang + "-fa");
         if (!fa)    return;
         // possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special"
         // result: links to special pages in the topbar and/or footer might also be marked as a Featured Article
 
         // build an image-node for the FA-star
         var img = document.createElement("img");
         img.setAttribute("src",     linkFA_bullet);
         img.setAttribute("alt",     linkFA_description);
         img.setAttribute("style",   linkFA_style);
 
         // decorate the link with the image
         link.appendChild(img);
         link.appendChild(link.removeChild(link.firstChild));
         link.setAttribute("title", linkFA_description);
     }
 }
 // aOnloadFunctions[aOnloadFunctions.length] = linkFA;
 addOnloadHook(linkFA);
 
 // END Configuration for "star" logo in front of interwiki links to Featured Articles

/** Extra toolbar options ******************************************************
  *
  *  Description: UNDOCUMENTED
  *  Maintainers: [[User:MarkS]]?, [[User:Voice of All]], [[User:R. Koot]]
  */
 
 //This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.
 // This is based on the original code on Wikipedia:Tools/Editing tools
 // To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]]
 
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/c/c8/Button_redirect.png",
     "speedTip": "渡",
     "tagOpen": "#REDIRECT [[",
     "tagClose": "]]",
     "sampleText": "入文"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/c/c9/Button_strike.png",
     "speedTip": "刪字線",
     "tagOpen": "<s>",
     "tagClose": "</s>",
     "sampleText": "去此字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/1/13/Button_enter.png",
     "speedTip": "易行",
     "tagOpen": "<br />",
     "tagClose": "",
     "sampleText": ""};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/8/80/Button_upper_letter.png",
     "speedTip": "上標",
     "tagOpen": "<sup>",
     "tagClose": "</sup>",
     "sampleText": "上標之字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/7/70/Button_lower_letter.png",
     "speedTip": "下標",
     "tagOpen": "<sub>",
     "tagClose": "</sub>",
     "sampleText": "下標之字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/5/58/Button_small.png",
     "speedTip": "小",
     "tagOpen": "<small>",
     "tagClose": "</small>",
     "sampleText": "小字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/3/34/Button_hide_comment.png",
     "speedTip": "陰評",
     "tagOpen": "<!-- ",
     "tagClose": " -->",
     "sampleText": "評"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/1/12/Button_gallery.png",
     "speedTip": "以圖入文",
     "tagOpen": "\n<gallery>\n",
     "tagClose": "\n</gallery>",
     "sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/f/fd/Button_blockquote.png",
     "speedTip": "引文",
     "tagOpen": "<blockquote>\n",
     "tagClose": "\n</blockquote>",
     "sampleText": "引文"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/6/60/Button_insert_table.png",
     "speedTip": "以表入文",
     "tagOpen": '{| class="wikitable"\n|-\n',
     "tagClose": "\n|}",
     "sampleText": "! header 1\n! header 2\n! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/commons/7/79/Button_reflink.png",
     "speedTip": "示據",
     "tagOpen": "<ref>",
     "tagClose": "</ref>",
     "sampleText": "書據於此"};

 }
 
 /*</nowiki>*/

/** 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. 
   *  Created by: [[User:Dschwen]]
   */
 
 document.write('<script type="text/javascript" src="' 
     + 'http://meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js' 
     + '&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400"></script>');

/** Change Special:Search to use a drop-down menu *******************************************************
   *
   *  Description: Change Special:Search to use a drop-down menu, with the default being
   *               the internal MediaWiki engine
   *  Created and maintained by: [[User:Gracenotes]]
   */
 
 if (wgPageName == "Special:Search") {
         var searchEngines = [];
         addOnloadHook(SpecialSearchEnhanced);
 }
 
 function SpecialSearchEnhanced() {
         var createOption = function(site, action, mainQ, addQ, addV) {
                 var opt = document.createElement('option');
                 opt.appendChild(document.createTextNode(site));
                 searchEngines[searchEngines.length] = [action, mainQ, addQ, addV];
                 return opt;
         }
         var searchForm = document.forms['search'];
         var selectBox = document.createElement('select');
         selectBox.id = 'searchEngine';
         searchForm.onsubmit = function() {
                 var optSelected = searchEngines[document.getElementById('searchEngine').selectedIndex];
                 searchForm.action = optSelected[0];
                 searchForm.lsearchbox.name = optSelected[1];
                 searchForm.title.value = optSelected[3];
                 searchForm.title.name = optSelected[2];
         }
         selectBox.appendChild(createOption('MediaWiki search', wgScriptPath + '/index.php', 'search', 'title', 'Special:Search'));
         selectBox.appendChild(createOption('Google', 'http://www.google.com/search', 'q', 'sitesearch', 'zh-classical.wikipedia.org'));
         selectBox.appendChild(createOption('Yahoo', 'http://search.yahoo.com/search', 'p', 'vs', 'zh-classical.wikipedia.org'));
         selectBox.appendChild(createOption('Windows Live', 'http://search.live.com/results.aspx', 'q', 'q1', 'site:http://zh-classical.wikipedia.org'));
         searchForm.lsearchbox.style.marginLeft = '0px';
         var lStat = document.getElementById('loadStatus');
         lStat.parentNode.insertBefore(selectBox, lStat);
 }

 /** Collapsible tables *********************************************************
  *
  *  Description: Allows tables to be collapsed, showing only the header. See
  *               [[Wikipedia:NavFrame]].
  *  Maintainers: [[User:R. Koot]]
  */
 
 var autoCollapse = 2;
 var collapseCaption = "hide";
 var expandCaption = "show";
 
 function collapseTable( tableIndex )
 {
     var Button = document.getElementById( "collapseButton" + tableIndex );
     var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
     if ( !Table || !Button ) {
         return false;
     }
 
     var Rows = Table.rows;
 
     if ( Button.firstChild.data == collapseCaption ) {
         for ( var i = 1; i < Rows.length; i++ ) {
             Rows[i].style.display = "none";
         }
         Button.firstChild.data = expandCaption;
     } else {
         for ( var i = 1; i < Rows.length; i++ ) {
             Rows[i].style.display = Rows[0].style.display;
         }
         Button.firstChild.data = collapseCaption;
     }
 }
 
 function createCollapseButtons()
 {
     var tableIndex = 0;
     var NavigationBoxes = new Object();
     var Tables = document.getElementsByTagName( "table" );
 
     for ( var i = 0; i < Tables.length; i++ ) {
         if ( hasClass( Tables[i], "collapsible" ) ) {
 
             /* only add button and increment count if there is a header row to work with */
             var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
             if (!HeaderRow) continue;
             var Header = HeaderRow.getElementsByTagName( "th" )[0];
             if (!Header) continue;
 
             NavigationBoxes[ tableIndex ] = Tables[i];
             Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
             var Button     = document.createElement( "span" );
             var ButtonLink = document.createElement( "a" );
             var ButtonText = document.createTextNode( collapseCaption );
 
             Button.style.styleFloat = "right";
             Button.style.cssFloat = "right";
             Button.style.fontWeight = "normal";
             Button.style.textAlign = "right";
             Button.style.width = "6em";
 
             ButtonLink.style.color = Header.style.color;
             ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
             ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
             ButtonLink.appendChild( ButtonText );
 
             Button.appendChild( document.createTextNode( "[" ) );
             Button.appendChild( ButtonLink );
             Button.appendChild( document.createTextNode( "]" ) );
 
             Header.insertBefore( Button, Header.childNodes[0] );
             tableIndex++;
         }
     }
 
     for ( var i = 0;  i < tableIndex; i++ ) {
         if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
             collapseTable( i );
         }
     }
 }
 
 addOnloadHook( createCollapseButtons );