MediaWiki:Common.js

3D Game Comparison - Game vs. game. No hype; just facts.™

(Difference between revisions)
Jump to: navigation, search
Revision as of 08:36, 8 September 2007 (edit)
Eep² (t|c)
m -nowiki tags
← Previous diff
Revision as of 09:26, 8 September 2007 (edit) (undo)
Eep² (t|c)
more buttons
Next diff →
Line 213: Line 213:
if (mwCustomEditButtons) { if (mwCustomEditButtons) {
 + mwCustomEditButtons[mwCustomEditButtons.length] = {
 + "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/3a/Button_headline3.png",
 + "speedTip": "level 3 headline (<h3>)",
 + "tagOpen": "\n===",
 + "tagClose": "===",
 + "sampleText": "text"};
 +
 + mwCustomEditButtons[mwCustomEditButtons.length] = {
 + "imageFile": "http://upload.wikimedia.org/wikipedia/commons/6/6c/Button_see_also.png",
 + "speedTip": "see also",
 + "tagOpen": "==See also==\n* [[",
 + "tagClose": "]]",
 + "sampleText": "article"};
 +
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png", "imageFile": "http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png",
Line 283: Line 297:
"tagClose": "</small>", "tagClose": "</small>",
"sampleText": "small text"}; "sampleText": "small text"};
 +
 + mwCustomEditButtons[mwCustomEditButtons.length] = {
 + "imageFile": "http://upload.wikimedia.org/wikipedia/commons/5/56/Button_big.png",
 + "speedTip": "big text",
 + "tagOpen": "<big>",
 + "tagClose": "</big>",
 + "sampleText": "big text"};
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {

Revision as of 09:26, 8 September 2007

/* Test if an element has a certain class **************************************

*
* Description: Uses regular expressions and caching for better performance.
* Maintainers: w:User:Mike Dillon, w:User:R. Koot, w:User:SG
*/

var hasClass = (function () {

   var reCache = {};
   return function (element, className) {
       return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
   };

})();

/** Collapsible tables *********************************************************

*
*  Description: Allows tables to be collapsed, showing only the header. See
*               w:Wikipedia:NavFrame.
*  Maintainers: w:User:R. Koot
*/

var autoCollapse = 2; var collapseCaption = "—"; var expandCaption = "+";

function collapseTable( tableIndex ) {

   var Button = document.getElementById( "collapseButton" + tableIndex );
   var Table = document.getElementById( "collapsibleTable" + tableIndex );
   if ( !Table || !Button ) {
       return false;
   }
   var Rows = Table.getElementsByTagName( "tr" ); 
   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" ) ) {
           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.setAttribute( "id", "collapseButton" + tableIndex );
           ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
           ButtonLink.appendChild( ButtonText );
           Button.appendChild( document.createTextNode( "[" ) );
           Button.appendChild( ButtonLink );
           Button.appendChild( document.createTextNode( "]" ) );
           var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
           /* only add button and increment count if there is a header row to work with */
           if (Header) {
               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 );

/** Dynamic Navigation Bars (experimental) *************************************

*
*  Description: See w:Wikipedia:NavFrame.
*  Maintainers: UNMAINTAINED
*/

// set up the words in your language var NavigationBarHide = '[' + collapseCaption + ']'; var NavigationBarShow = '[' + expandCaption + ']';

// shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) {

  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
  if (!NavFrame || !NavToggle) {
      return false;
  }
  // if shown now
  if (NavToggle.firstChild.data == NavigationBarHide) {
      for (
              var NavChild = NavFrame.firstChild;
              NavChild != null;
              NavChild = NavChild.nextSibling
          ) {
          if ( hasClass( NavChild, 'NavPic' ) ) {
              NavChild.style.display = 'none';
          }
          if ( hasClass( NavChild, 'NavContent') ) {
              NavChild.style.display = 'none';
          }
      }
  NavToggle.firstChild.data = NavigationBarShow;
  // if hidden now
  } else if (NavToggle.firstChild.data == NavigationBarShow) {
      for (
              var NavChild = NavFrame.firstChild;
              NavChild != null;
              NavChild = NavChild.nextSibling
          ) {
          if (hasClass(NavChild, 'NavPic')) {
              NavChild.style.display = 'block';
          }
          if (hasClass(NavChild, 'NavContent')) {
              NavChild.style.display = 'block';
          }
      }
  NavToggle.firstChild.data = NavigationBarHide;
  }

}

// adds show/hide-button to navigation bars function createNavigationBarToggleButton() {

  var indexNavigationBar = 0;
  // iterate over all < div >-elements 
  var divs = document.getElementsByTagName("div");
  for(
          var i=0; 
          NavFrame = divs[i]; 
          i++
      ) {
      // if found a navigation bar
      if (hasClass(NavFrame, "NavFrame")) {
          indexNavigationBar++;
          var NavToggle = document.createElement("a");
          NavToggle.className = 'NavToggle';
          NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
          NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
          var NavToggleText = document.createTextNode(NavigationBarHide);
          for (
               var NavChild = NavFrame.firstChild;
               NavChild != null;
               NavChild = NavChild.nextSibling
              ) {
              if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                  if (NavChild.style.display == 'none') {
                      NavToggleText = document.createTextNode(NavigationBarShow);
                      break;
                  }
              }
          }
          NavToggle.appendChild(NavToggleText);
          // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
          for(
            var j=0; 
            j < NavFrame.childNodes.length; 
            j++
          ) {
            if (hasClass(NavFrame.childNodes[j], "NavHead")) {
              NavFrame.childNodes[j].appendChild(NavToggle);
            }
          }
          NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
      }
  }

}

addOnloadHook( createNavigationBarToggleButton );

/** Extra toolbar options ******************************************************

*
*  Description: UNDOCUMENTED
*  Maintainers: w:User:MarkS?, w:User:Voice of All, w: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 w:Wikipedia:Tools/Editing tools // To disable this script, add mwCustomEditButtons = [];<code> to Special:Mypage/monobook.js

if (mwCustomEditButtons) {

 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_headline3.png",
   "speedTip": "level 3 headline (<h3>)",
   "tagOpen": "\n===",
   "tagClose": "===",
   "sampleText": "text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_see_also.png",
   "speedTip": "see also",
   "tagOpen": "==See also==\n* [[",
   "tagClose": "]]",
   "sampleText": "article"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_category03.png",
   "speedTip": "category",
   "tagOpen": "[[cat:",
   "tagClose": "]]",
   "sampleText": "category"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_redirect.png",
   "speedTip": "redirect",
   "tagOpen": "#redirect [[",
   "tagClose": "]]",
   "sampleText": "article"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Tt_icon.png",
   "speedTip": "teletype (monospace) text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "teletype text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_pre.png",
   "speedTip": "preformatted text",
"tagOpen": "
",
    "tagClose": "
",
   "sampleText": "preformatted text"};


 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_strike.png",
   "speedTip": "strikethrough text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "strikethrough text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_enter.png",
   "speedTip": "line break",
   "tagOpen": "
", "tagClose": "", "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_center.png",
   "speedTip": "center text",
"tagOpen": '
', "tagClose": "
",
   "sampleText": "centered text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_upper_letter.png",
   "speedTip": "superscript text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "superscript text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_lower_letter.png",
   "speedTip": "subscript text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "subscript text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_small.png",
   "speedTip": "small text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "small text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_big.png",
   "speedTip": "big text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "big text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_blockquote.png",
   "speedTip": "blockquote",
"tagOpen": "
\n", "tagClose": "\n
",
   "sampleText": "block quote"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_hide_comment.png",
   "speedTip": "comment",
   "tagOpen": "",
   "sampleText": "comment"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_advanced_image.png",
   "speedTip": "image (advanced)",
   "tagOpen": "[[Image:",
   "tagClose": "|thumb|right|px|Caption]]",
   "sampleText": "image.ext"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_gallery.png",
   "speedTip": "gallery",
"tagOpen": "\n",
   "sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_insert_table.png",
   "speedTip": "table",
   "tagOpen": '{| class=sortable\n|-\n',
   "tagClose": "\n|}",
   "sampleText": "!header 1 !!header 2 !!header 3\n|-\n| row 1, cell 1 || row 1, cell 2 || row 1, cell 3\n|-\n| row 2, cell 1 || row 2, cell 2 || row 2, cell 3"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableStart.png",
   "speedTip": "table start",
   "tagOpen": '{|',
   "tagClose": "",
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableRow.png",
   "speedTip": "table row",
   "tagOpen": '|-',
   "tagClose": "",
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableCell.png",
   "speedTip": "table cell",
   "tagOpen": '|',
   "tagClose": "",
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableEnd.png",
   "speedTip": "table end",
   "tagOpen": "",
   "tagClose": '|}',
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_plantilla.png",
   "speedTip": "template",
   "tagOpen": "{{",
   "tagClose": "}}",
   "sampleText": "template"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_substitute.png",
   "speedTip": "substitute template",
   "tagOpen": "{{subst:",
   "tagClose": "}}",
   "sampleText": "template"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_no_include.png",
   "speedTip": "noinclude",
   "tagOpen": "",
   "tagClose": "<\/noinclude>",
   "sampleText": "text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_include.png",
   "speedTip": "includeonly",
   "tagOpen": "<includeonly>",
   "tagClose": "<\/includeonly>",
   "sampleText": "text"};

}

Personal tools