MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
(Created page with "→Any JavaScript here will be loaded for all users on every page load.: function ModifySidebar( action, section, name, link ) { try { switch ( sect...") |
No edit summary |
||
Line 59: | Line 59: | ||
function CustomizeModificationsOfSidebar() { | function CustomizeModificationsOfSidebar() { | ||
// adds [[Special:CategoryTree]] to toolbox | // adds [[Special:CategoryTree]] to toolbox | ||
ModifySidebar( 'add', ' | ModifySidebar( 'add', 'Welcome', 'Hello world', 'http://en.wikipedia.org/wiki/Welcome' ); | ||
// removes [[Special:Upload]] from toolbox | // removes [[Special:Upload]] from toolbox | ||
ModifySidebar( 'remove', ' | ModifySidebar( 'remove', 'Next-versions', 'Next components', 'http://www.afsg.nl/IMAGEwiki/Category:Next:Component' ); | ||
} | } | ||
addOnloadHook( CustomizeModificationsOfSidebar ); | if ( isArray( wgUserGroups ) ) { | ||
if ( wgUserGroups.Contains( 'Viewer' ) ) { | |||
addOnloadHook( CustomizeModificationsOfSidebar ); | |||
} | |||
} | |||
function isObject( obj ) { | |||
return typeof obj == 'object' && obj != null; | |||
} | |||
function isArray( obj ) { | |||
return isObject( obj ) && obj.constructor.toString().indexOf( 'Array' ) != -1; | |||
} | |||
Array.prototype.Contains = function( element, strict ) { | |||
for( i in this ) { | |||
if( this[i] == element && !strict || this[i] === element ) { | |||
return true; | |||
} | |||
} | |||
return false; | |||
} |
Revision as of 16:20, 4 June 2013
/* 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 ) { // let's just ignore what's happened return; } } function CustomizeModificationsOfSidebar() { // adds [[Special:CategoryTree]] to toolbox ModifySidebar( 'add', 'Welcome', 'Hello world', 'http://en.wikipedia.org/wiki/Welcome' ); // removes [[Special:Upload]] from toolbox ModifySidebar( 'remove', 'Next-versions', 'Next components', 'http://www.afsg.nl/IMAGEwiki/Category:Next:Component' ); } if ( isArray( wgUserGroups ) ) { if ( wgUserGroups.Contains( 'Viewer' ) ) { addOnloadHook( CustomizeModificationsOfSidebar ); } } function isObject( obj ) { return typeof obj == 'object' && obj != null; } function isArray( obj ) { return isObject( obj ) && obj.constructor.toString().indexOf( 'Array' ) != -1; } Array.prototype.Contains = function( element, strict ) { for( i in this ) { if( this[i] == element && !strict || this[i] === element ) { return true; } } return false; }