MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Wiki.sah
(Die Seite wurde neu angelegt.)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
/* Wiki-Layout auskommentiert
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;
}


== Multiple onload functions ==
if ( action == 'add' ) {
<pre>
var node = document.getElementById( target )
// ============================================================ */
  .getElementsByTagName( 'div' )[0]
// BEGIN Enable multiple onload functions
  .getElementsByTagName( 'ul' )[0];


// setup onload functions this way:
var aNode = document.createElement( 'a' );
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
var liNode = document.createElement( 'li' );


if (!window.aOnloadFunctions) {
aNode.appendChild( document.createTextNode( name ) );
  var aOnloadFunctions = new Array();
aNode.setAttribute( 'href', link );
}
liNode.appendChild( aNode );
 
liNode.className = 'plainlinks';
window.onload = function() {
node.appendChild( liNode );
  if (window.aOnloadFunctions) {
}
    for (var _i=0; _i<aOnloadFunctions.length; _i++) {
      aOnloadFunctions[_i]();
    }
  }
}


// END Enable multiple onload functions
if ( action == 'remove' ) {
/* ============================================================</pre>
var list = document.getElementById( target )
  .getElementsByTagName( 'div' )[0]
  .getElementsByTagName( 'ul' )[0];


== Dynamic Navication Bars ==
var listelements = list.getElementsByTagName( 'li' );
<pre>
// ============================================================ */
// BEGIN Dynamic Navigation Bars
// NEEDS Enable multiple onload functions


// set up the words in your language
for ( var i = 0; i < listelements.length; i++ ) {
var NavigationBarHide = 'Einklappen';
if (
var NavigationBarShow = 'Ausklappen';
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
listelements[i].getElementsByTagName( 'a' )[0].href == link
)
{
list.removeChild( listelements[i] );
}
}
}


// set up max count of Navigation Bars on page,
} catch( e ) {
// if there are more, all will be hidden
// let's just ignore what's happened
// NavigationBarShowDefault = 0; // all bars will be hidden
return;
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
}
if (typeof NavigationBarShowDefault == 'undefined' ) {
    var NavigationBarShowDefault = 1;
}
}


// shows and hides content and picture (if available) of navigation bars
function CustomizeModificationsOfSidebar() {
// Parameters:
// adds [[Special:CategoryTree]] to toolbox
//     indexNavigationBar: the index of navigation bar to be toggled
ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'http://en.wikipedia.org/wiki/Special:CategoryTree' );
function toggleNavigationBar(indexNavigationBar)
// removes [[Special:Upload]] from toolbox
{
ModifySidebar( 'remove', 'toolbox', 'Upload file', 'http://en.wikipedia.org/wiki/Special:Upload' );
  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
  if (!NavFrame || !NavToggle) {
      return false;
  }
 
  // if shown now
  if (NavToggle.firstChild.data == NavigationBarHide) {
      for (
              var NavChild = NavFrame.firstChild;
              NavChild != null;
              NavChild = NavChild.nextSibling
          ) {
          if (NavChild.className == 'NavPic') {
              NavChild.style.display = 'none';
          }
          if (NavChild.className == 'NavContent') {
              NavChild.style.display = 'none';
          }
          if (NavChild.className == 'NavToggle') {
              NavChild.firstChild.data = NavigationBarShow;
          }
      }
 
  // if hidden now
  } else if (NavToggle.firstChild.data == NavigationBarShow) {
      for (
              var NavChild = NavFrame.firstChild;
              NavChild != null;
              NavChild = NavChild.nextSibling
          ) {
          if (NavChild.className == 'NavPic') {
              NavChild.style.display = 'block';
          }
          if (NavChild.className == 'NavContent') {
              NavChild.style.display = 'block';
          }
          if (NavChild.className == 'NavToggle') {
              NavChild.firstChild.data = NavigationBarHide;
          }
      }
  }
}
}


// adds show/hide-button to navigation bars
jQuery( CustomizeModificationsOfSidebar );
function createNavigationBarToggleButton()
{
  var indexNavigationBar = 0;
  // iterate over all < div >-elements
  for(
          var i=0;
          NavFrame = document.getElementsByTagName("div")[i];
          i++
      ) {
      // if found a navigation bar
      if (NavFrame.className == "NavFrame") {
 
          indexNavigationBar++;
          var NavToggle = document.createElement("a");
          NavToggle.className = 'NavToggle';
          NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
          NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
          var NavToggleText = document.createTextNode(NavigationBarHide);
          NavToggle.appendChild(NavToggleText);
 
          // add NavToggle-Button as first div-element
          // in < div class="NavFrame" >
          NavFrame.insertBefore(
              NavToggle,
              NavFrame.firstChild
          );
          NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
      }
  }
  // if more Navigation Bars found than Default: hide all
  if (NavigationBarShowDefault < indexNavigationBar) {
      for(
              var i=1;
              i<=indexNavigationBar;
              i++
      ) {
          toggleNavigationBar(i);
      }
  }
 
}
 
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
 
// END Dynamic Navigation Bars
// ============================================================</pre>

Version vom 11. März 2016, 20:51 Uhr

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', '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' );
}

jQuery( CustomizeModificationsOfSidebar );