Weitere Optionen
K Testversion |
CF (Diskussion | Beiträge) Navigationsleisten aktualisiert und nach MediaWiki:Common.js verschoben |
||
| Zeile 54: | Zeile 54: | ||
importScript('MediaWiki:CollapsibleTables.js'); | importScript('MediaWiki:CollapsibleTables.js'); | ||
importScript('MediaWiki:CollapsibleTemplates.js'); | importScript('MediaWiki:CollapsibleTemplates.js'); | ||
//================================================================================ | |||
//*** Dynamic Navigation Bars | |||
// set up the words in your language | |||
var NavigationBarHide = 'Einklappen'; | |||
var NavigationBarShow = 'Ausklappen'; | |||
var NavigationBarToggleAll = 'Alle umklappen'; | |||
// set up max count of Navigation Bars on page, | |||
// if there are more, all will be hidden | |||
// NavigationBarShowDefault = 0; // all bars will be hidden | |||
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden | |||
if (typeof NavigationBarShowDefault == 'undefined' ) { | |||
var NavigationBarShowDefault = 1; | |||
} | |||
// adds show/hide-button to navigation bars | |||
addOnloadHook(function() { | |||
// shows and hides content and picture (if available) of navigation bars | |||
// Parameters: | |||
// indexNavigationBar: the index of navigation bar to be toggled | |||
function toggleNavigationBar(NavToggle, NavFrame) | |||
{ | |||
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; | |||
} | |||
} | |||
} | |||
} | |||
function toggleNavigationBarFunction(NavToggle, NavFrame) { | |||
return function() { | |||
toggleNavigationBar(NavToggle, NavFrame); | |||
return false; | |||
}; | |||
} | |||
// Shows/hides all navigation bars at once | |||
function toggleNavigationBars() { | |||
var NavFrames = getElementsByClassName(document.getElementById("content"), "div", "NavFrame"); | |||
for (var i=0; i<NavFrames.length; i++) | |||
ToggleNavigationBar(getElementsByClassName(NavFrames[i], "a", "NavToggle")[0], NavFrames[i]); | |||
} | |||
function toggleNavigationBarsFunction() { | |||
return function() { | |||
toggleNavigationBars(); | |||
return false; | |||
}; | |||
} | |||
// iterate over all NavFrames | |||
var content = document.getElementById("content"); | |||
var NavFrames = getElementsByClassName(content, "div", "NavFrame"); | |||
// if more Navigation Bars found and not template namespace than Default: hide all | |||
var initiallyToggle = NavigationBarShowDefault < NavFrames.length && wgNamespaceNumber != 10; | |||
for (var i=0; i<NavFrames.length; i++) { | |||
var NavFrame = NavFrames[i]; | |||
var NavToggle = document.createElement("a"); | |||
NavToggle.className = 'NavToggle'; | |||
NavToggle.setAttribute('href', '#'); | |||
var NavToggleText = document.createTextNode(NavigationBarHide); | |||
NavToggle.appendChild(NavToggleText); | |||
// add NavToggle-Button as first div-element | |||
// in < div class="NavFrame" > | |||
NavFrame.insertBefore(NavToggle, NavFrame.firstChild); | |||
NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame); | |||
if (initiallyToggle) { | |||
toggleNavigationBar(NavToggle, NavFrame); | |||
} | |||
} | |||
var NavFrameToggleAlls = getElementsByClassName(content, "div", "NavFrameToggleAll"); | |||
for (var i=0; i<NavFrameToggleAlls.length; i++) { | |||
var NavFrameToggleAll = NavFrameToggleAlls[i]; | |||
var NavToggleAll = document.createElement("a"); | |||
NavToggleAll.className = 'NavToggleAll'; | |||
NavToggleAll.setAttribute('href', '#'); | |||
var NavToggleAllText = document.createTextNode(NavigationBarToggleAll); | |||
NavToggleAll.appendChild(NavToggleAllText); | |||
// add NavToggleAll-Button as first div-element | |||
// in < div class="NavFrameToggleAll" > | |||
NavFrameToggleAll.insertBefore(NavToggleAll, NavFrameToggleAll.firstChild); | |||
NavToggleAll.onclick = toggleNavigationBarsFunction(); | |||
} | |||
}); | |||