Difference between revisions of "User:Gordon Wendt/monobook.js"

From Second Life Wiki
Jump to navigation Jump to search
(testing)
(trying different code)
Line 1: Line 1:
//<pre><nowiki>
function ModifySidebar(action, section, name, link) {
 
    try {
var shortcutsVersion      = "1.1.0";
        switch (section) {
var shortcutsReleaseDate  = "2007-02-03";
          case "languages":
            var target = "p-lang";
            break;
          case "toolbox":
            var target = "p-tb";
            break;
          case "navigation":
            var target = "p-navigation";
            break;
          default:
            var target = "p-" + section;
            break;
        }
   
   
function shortcutsInit ()
        if (action == "add") {
{
            var node = document.getElementById(target)
  shortcutsAddLink ('Random page', 'Special:Random');
                              .getElementsByTagName('div')[0]
}
                              .getElementsByTagName('ul')[0];
 
   
   
/***********************************************************
            var aNode = document.createElement('a');
  * INTERFACE
            var liNode = document.createElement('li');
  ***********************************************************/
   
   
/**
            aNode.appendChild(document.createTextNode(name));
  * Starts a new section of links. Function for external use.
            aNode.setAttribute('href', link);
  */
            liNode.appendChild(aNode);
function shortcutsStartSection (name)
            liNode.className='plainlinks';
{
            node.appendChild(liNode);
  shortcutsLinks[shortcutsLinks.length] = { 'name': name, 'links': new Array () };
        }
}
   
   
/**
        if (action == "remove") {
  * Adds new link into the current section of links. Function for external use.
            var list = document.getElementById(target)
  */
                              .getElementsByTagName('div')[0]
function shortcutsAddLink (name, article)
                              .getElementsByTagName('ul')[0];
{
  var links = shortcutsLinks[shortcutsLinks.length - 1]['links'];
   
   
  links[links.length] = { 'name': name, 'article': article };
            var listelements = list.getElementsByTagName('li');
}
   
   
/***********************************************************
            for (var i = 0; i < listelements.length; i++) {
  * IMPLEMENTATION
                if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
  ***********************************************************/
                    listelements[i].getElementsByTagName('a')[0].href == link) {
   
   
/**
                    list.removeChild(listelements[i]);
  * Link maker.
                }
  * Creates and returns an li element with the desired link.
            }
  */
        }
function shortcutsMakeLink (name, url)
{
  var ntxt = document.createTextNode (name);
  var na  = document.createElement ('a');
  var nli  = document.createElement ('li');
   
   
  na.setAttribute ('href', '/wiki/' + url);  
    } catch(e) {
  nli.setAttribute ('class', 'n-shortcut');
      // lets just ignore what's happened
      return;
    }
}
   
   
  na.appendChild (ntxt);
function CustomizeModificationsOfSidebar() {
  nli.appendChild (na);
    //adds [[Special:CategoryTree]] to toolbox
    ModifySidebar("add", "toolbox", "CategoryTree", "http://en.wikipedia.org/wiki/Special:CategoryTree");
  return nli;
    //removes [[Special:Upload]] from toolbox
}
    ModifySidebar("remove", "toolbox", "Upload file", "http://en.wikipedia.org/wiki/Special:Upload");
}
/**
  * Portlet maker.
  * Creates and returns a portlet populated by list of links.
  */
function shortcutsMakePortlet (name, links)
{
  var nportlet = document.createElement ('div');
  var nh5 = document.createElement ('h5');
  var ntit = document.createTextNode (name);
  var nbody = document.createElement ('div');
  var nul = document.createElement ('ul');
  nportlet.setAttribute ('id', 'p-'+name);
  nportlet.setAttribute ('class', 'portlet');
  nbody.setAttribute ('class', 'pBody');
  nul.setAttribute ('id', 'p-'+name);
  for (var i = 0; i < links.length; i++)
    nul.appendChild (
      shortcutsMakeLink (links[i]['name'], links[i]['article'])
    );
  nh5.appendChild (ntit);
  nportlet.appendChild (nh5);
  nbody.appendChild (nul);
  nportlet.appendChild (nbody);
  return nportlet;
}
/**
  * Main function.
  * Enumerates all non-empty sections, and adds new portlets beneath the old ones.
  */
function shortcutsMain ()
{
  var sidecol = document.getElementById ('column-one');
  for (var i = 0; i < shortcutsLinks.length; i++)
    if (shortcutsLinks[i]['links'].length > 0)
      sidecol.appendChild (
        shortcutsMakePortlet (shortcutsLinks[i]['name'], shortcutsLinks[i]['links'])
      );
}
/**
  * Initializes the onload events.
  */
function shortcutsInitialize ()
{
  shortcutsInit ();
  shortcutsMain ();
}
/***********************************************************
  * INITIALIZATION
  ***********************************************************/
var shortcutsLinks = new Array ();
shortcutsStartSection (wgUserName ? wgUserName : 'shortcuts');
addOnloadHook (shortcutsInitialize);
   
   
//</nowiki></pre>
addOnloadHook(CustomizeModificationsOfSidebar);

Revision as of 15:12, 10 June 2009

function ModifySidebar(action, section, name, link) {
    try {
        switch (section) {
          case "languages":
            var target = "p-lang";
            break;
          case "toolbox":
            var target = "p-tb";
            break;
          case "navigation":
            var target = "p-navigation";
            break;
          default:
            var target = "p-" + section;
            break;
        }
 
        if (action == "add") {
            var node = document.getElementById(target)
                               .getElementsByTagName('div')[0]
                               .getElementsByTagName('ul')[0];
 
            var aNode = document.createElement('a');
            var liNode = document.createElement('li');
 
            aNode.appendChild(document.createTextNode(name));
            aNode.setAttribute('href', link);
            liNode.appendChild(aNode);
            liNode.className='plainlinks';
            node.appendChild(liNode);
        }
 
        if (action == "remove") {
            var list = document.getElementById(target)
                               .getElementsByTagName('div')[0]
                               .getElementsByTagName('ul')[0];
 
            var listelements = list.getElementsByTagName('li');
 
            for (var i = 0; i < listelements.length; i++) {
                if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
                    listelements[i].getElementsByTagName('a')[0].href == link) {
 
                    list.removeChild(listelements[i]);
                }
            }
        }
 
    } catch(e) {
      // lets just ignore what's happened
      return;
    }
}
 
function CustomizeModificationsOfSidebar() {
    //adds [[Special:CategoryTree]] to toolbox
    ModifySidebar("add", "toolbox", "CategoryTree", "http://en.wikipedia.org/wiki/Special:CategoryTree");
    //removes [[Special:Upload]] from toolbox
    ModifySidebar("remove", "toolbox", "Upload file", "http://en.wikipedia.org/wiki/Special:Upload");
}
 
addOnloadHook(CustomizeModificationsOfSidebar);