MediaWiki:Common.js: различия между версиями

Материал из Документация Ключ-АСТРОМ
 
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
function ModifySidebar( action, section, name, link ) {
function ModifySidebar( action, section) {
try {
try {
switch ( section ) {
switch ( section ) {
case 'languages':
case 'toolbox':
var target = 'p-lang';
var target = 'site-tools';
break;
break;
case 'toolbox':
case 'toolbox-else':
var target = 'p-tb';
var target = 'page-tools';
break;
case 'main-tab':
var target = 'ca-nstab-main';
break;
case 'talk-tab':
var target = 'ca-talk';
break;
case 'source-tab':
var target = 'ca-viewsource';
break;
break;
case 'navigation':
case 'history-tab':
var target = 'p-navigation';
var target = 'ca-history';
break;
break;
default:
default:
var target = 'p-' + section;
var target = 'p-' + section;
Строка 17: Строка 27:
}
}


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' ) {
if ( action == 'remove' ) {
var list = document.getElementById( target )
var list = document.getElementById( target )
  .getElementsByTagName( 'div' )[0]
  //.getElementsByTagName( 'div' )[0]
  .getElementsByTagName( 'ul' )[0];
  //.getElementsByTagName( 'ul' )[0];
list.remove()


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] );
}
}
}
}


Строка 60: Строка 48:
// removes [[Special:Upload|Special:Upload]] from toolbox
// removes [[Special:Upload|Special:Upload]] from toolbox
ModifySidebar( 'remove', 'toolbox', 'Special Pages' );
ModifySidebar( 'remove', 'toolbox');
ModifySidebar( 'remove', 'toolbox-else');
ModifySidebar( 'remove', 'main-tab');
ModifySidebar( 'remove', 'talk-tab');
ModifySidebar( 'remove', 'source-tab');
ModifySidebar( 'remove', 'history-tab');
}
}


jQuery( CustomizeModificationsOfSidebar );
if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'user' ) === -1 ) {
jQuery( CustomizeModificationsOfSidebar );
}

Текущая версия на 11:20, 13 августа 2022

/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
function ModifySidebar( action, section) {
	try {
		switch ( section ) {
			case 'toolbox':
				var target = 'site-tools';
				break;
			case 'toolbox-else':
				var target = 'page-tools';
				break;
			case 'main-tab':
				var target = 'ca-nstab-main';
				break;
			case 'talk-tab':
				var target = 'ca-talk';
				break;
			case 'source-tab':
				var target = 'ca-viewsource';
				break;
			case 'history-tab':
				var target = 'ca-history';
				break;
			
			default:
				var target = 'p-' + section;
				break;
		}


		if ( action == 'remove' ) {
			var list = document.getElementById( target )
							   //.getElementsByTagName( 'div' )[0]
							   //.getElementsByTagName( 'ul' )[0];
			list.remove()
			

			
		}


	} catch( e ) {
		// let's just ignore what's happened
		return;
	}
}

function CustomizeModificationsOfSidebar() {
	
	// removes [[Special:Upload|Special:Upload]] from toolbox
	ModifySidebar( 'remove', 'toolbox');
	ModifySidebar( 'remove', 'toolbox-else');
	ModifySidebar( 'remove', 'main-tab');
	ModifySidebar( 'remove', 'talk-tab');
	ModifySidebar( 'remove', 'source-tab');
	ModifySidebar( 'remove', 'history-tab');
}

if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'user' ) === -1 ) {
	jQuery( CustomizeModificationsOfSidebar );
}