Difference between revisions of "MediaWiki:Common.js"
From Fortress Forever Wiki
Jump to navigationJump to searchm (tried some javascript trickery, it didn't work.) |
|||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
| + | 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() { | ||
| + | //Recent changes and help links are wrong. This'll fix 'em | ||
| + | ModifySidebar("remove", "toolbox", "Recent changes", "http://www.fortress-forever.com/wiki/Special:Recentchanges") | ||
| + | ModifySidebar("add", "toolbox", "Recent changes", "http://www.fortress-forever.com/wiki2/index.php?title=Special:Recentchanges") | ||
| + | ModifySidebar("remove", "toolbox", "Help", "http://www.fortress-forever.com/wiki/Help:Contents") | ||
| + | ModifySidebar("add", "toolbox", "Help", "http://www.fortress-forever.com/wiki2/index.php?title=Help:Contents") | ||
| + | |||
| + | ModifySidebar("add", "toolbox", "Preferences", "http://www.fortress-forever.com/wiki2/index.php?title=Special:Preferences") | ||
| + | } | ||
| + | |||
| + | addOnloadHook(CustomizeModificationsOfSidebar); | ||
Latest revision as of 13:33, 30 June 2009
/* Any JavaScript here will be loaded for all users on every page load. */
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() {
//Recent changes and help links are wrong. This'll fix 'em
ModifySidebar("remove", "toolbox", "Recent changes", "http://www.fortress-forever.com/wiki/Special:Recentchanges")
ModifySidebar("add", "toolbox", "Recent changes", "http://www.fortress-forever.com/wiki2/index.php?title=Special:Recentchanges")
ModifySidebar("remove", "toolbox", "Help", "http://www.fortress-forever.com/wiki/Help:Contents")
ModifySidebar("add", "toolbox", "Help", "http://www.fortress-forever.com/wiki2/index.php?title=Help:Contents")
ModifySidebar("add", "toolbox", "Preferences", "http://www.fortress-forever.com/wiki2/index.php?title=Special:Preferences")
}
addOnloadHook(CustomizeModificationsOfSidebar);