User:Alyxia/monobook.js: Difference between revisions
Jump to navigation
Jump to search
(See if skin-based scripts work) |
(Remove the adding of Special:AllPages) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
console. | // Sidebar modification {{{ | ||
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) { | |||
// Probably not the best course of action to ignore error handling... but | |||
// whatever. | |||
console.error('Something went horribly wrong when trying to modify the sidebar!\n', e); | |||
return; | |||
} | |||
} | |||
function CustomizeModificationsOfSidebar() { | |||
// Currently, the calling of this function is disabled as there is a much | |||
// more MW-agnostic solution to adding pages to the sidebar, namely | |||
// `mw.util.addPortletLink`. | |||
// This is certainly not to say that ModifySidebar is inherently *bad*, | |||
// because `mw.util` does *not* provide a toolset for *removing* items from | |||
// the sidebar. | |||
// ModifySidebar('add', 'toolbox', 'All pages', 'https://wiki.fyralabs.com/Special:AllPages'); | |||
} | |||
jQuery(CustomizeModificationsOfSidebar); | |||
// }}} |
Latest revision as of 10:30, 6 June 2023
// Sidebar modification {{{
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) {
// Probably not the best course of action to ignore error handling... but
// whatever.
console.error('Something went horribly wrong when trying to modify the sidebar!\n', e);
return;
}
}
function CustomizeModificationsOfSidebar() {
// Currently, the calling of this function is disabled as there is a much
// more MW-agnostic solution to adding pages to the sidebar, namely
// `mw.util.addPortletLink`.
// This is certainly not to say that ModifySidebar is inherently *bad*,
// because `mw.util` does *not* provide a toolset for *removing* items from
// the sidebar.
// ModifySidebar('add', 'toolbox', 'All pages', 'https://wiki.fyralabs.com/Special:AllPages');
}
jQuery(CustomizeModificationsOfSidebar);
// }}}