MediaWiki:Gadget-Gender.js

From Zelda Dungeon Wiki
Revision as of 21:55, April 5, 2012 by David (talk | contribs)
Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl+F5 or Ctrl+R (Command+R on a Mac)
  • Google Chrome: press Ctrl+Shift+R (Command+Shift+R on a Mac)
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl+F5
  • Konqueror: click Reload or press F5
  • Opera: clear the cache in Tools → Preferences
// If on a user or user talk page, and not a subpage...
if ((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) &&
    !/\//.test(wgTitle)) {
  // add a hook to...
  $(function() {
    // init AJAX and request the user's gender from the API
    var a = sajax_init_object();
    a.open("GET", wgServer + wgScriptPath + 
                  "/api.php?format=json&action=query&list=users&ususers=" + 
                  escape(wgTitle.replace(/ /, "_")) + "&usprop=gender",
           true);
 
    // when response arrives...
    a.onreadystatechange = function() {
      if(a.readyState == 4 && a.status == 200) {
        // parse the JSON response
        var genderText = 
          eval("(" + a.responseText + ")").query.users[0].gender;
 
        // U+2640 and U+2642 are female and male signs respectively.
        var genderSymbol = "";
        if (genderText == "female") {
          genderSymbol = "<span style=\"color: pink;\">&#x2640;</span>";
        } else if (genderText == "male") {
          genderSymbol = "<span style=\"color: blue;\">&#x2642;</span>";
        }
 
 
        // if gender was specified, append the symbol
        if (genderSymbol != "") {
          document.getElementById("firstHeading").innerHTML += 
            "&nbsp;" + genderSymbol;
        }
      }
    };
 
    // send the API request
    a.send();
  });
}