MediaWiki:Vector.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 1: | Zeile 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
// ============================================================ | // ============================================================ | ||
// BEGIN Enable multiple onload functions | // BEGIN Enable multiple onload functions | ||
Zeile 35: | Zeile 17: | ||
var NavigationBarHide = 'Einklappen'; | var NavigationBarHide = 'Einklappen'; | ||
var NavigationBarShow = 'Ausklappen'; | var NavigationBarShow = 'Ausklappen'; | ||
+ | var NavigationBarShowAll = 'Alle ausklappen'; | ||
+ | var NavigationBarHideAll = 'Alle einklappen'; | ||
// set up max count of Navigation Bars on page, | // set up max count of Navigation Bars on page, | ||
Zeile 47: | Zeile 31: | ||
// Parameters: | // Parameters: | ||
// indexNavigationBar: the index of navigation bar to be toggled | // indexNavigationBar: the index of navigation bar to be toggled | ||
− | function toggleNavigationBar(indexNavigationBar) | + | // show: true/false force show/hide instead of toggle |
+ | function toggleNavigationBar(indexNavigationBar,show) | ||
{ | { | ||
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | ||
Zeile 57: | Zeile 42: | ||
// if shown now | // if shown now | ||
− | if (NavToggle.firstChild.data == NavigationBarHide) { | + | if ((NavToggle.firstChild.data == NavigationBarHide && show == null) || show == false) { |
for ( | for ( | ||
var NavChild = NavFrame.firstChild; | var NavChild = NavFrame.firstChild; | ||
Zeile 75: | Zeile 60: | ||
// if hidden now | // if hidden now | ||
− | } else if (NavToggle.firstChild.data == NavigationBarShow) { | + | } else if (NavToggle.firstChild.data == NavigationBarShow || show == true) { |
for ( | for ( | ||
var NavChild = NavFrame.firstChild; | var NavChild = NavFrame.firstChild; | ||
Zeile 92: | Zeile 77: | ||
} | } | ||
} | } | ||
+ | } | ||
+ | |||
+ | // Shows/hides several navigation bars at once | ||
+ | // Parameters: Each navigationbar index as a seperate parameter | ||
+ | function toggleNavigationBars() | ||
+ | { | ||
+ | var showNow = null; | ||
+ | // iterate over all < div >-elements, to toggle the linktext | ||
+ | for( | ||
+ | var i=0; | ||
+ | NavFrameToggleAll = document.getElementsByTagName("div")[i]; | ||
+ | i++ | ||
+ | ) { | ||
+ | if (NavFrameToggleAll.className == "NavFrameToggleAll") { | ||
+ | NavToggle = NavFrameToggleAll.firstChild.firstChild | ||
+ | |||
+ | |||
+ | if (NavToggle.data == NavigationBarShowAll) { | ||
+ | // currently hidden, show now | ||
+ | NavToggle.data = NavigationBarHideAll; | ||
+ | showNow = true; | ||
+ | } else if (NavToggle.data == NavigationBarHideAll) { | ||
+ | // currently shown, hide now | ||
+ | NavToggle.data = NavigationBarShowAll; | ||
+ | showNow = false; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | // toggle the navigation bars | ||
+ | var args = toggleNavigationBars.arguments; | ||
+ | for (var i=0;i<args.length;i++) { | ||
+ | toggleNavigationBar(args[i],showNow); | ||
+ | } | ||
} | } | ||
Zeile 125: | Zeile 143: | ||
} | } | ||
} | } | ||
+ | |||
+ | // iterate over all < div >-elements | ||
+ | for( | ||
+ | var i=0; | ||
+ | NavFrameToggleAll = document.getElementsByTagName("div")[i]; | ||
+ | i++ | ||
+ | ) { | ||
+ | if (NavFrameToggleAll.className == "NavFrameToggleAll") { | ||
+ | |||
+ | var NavToggle = document.createElement("a"); | ||
+ | NavToggle.className = 'NavToggleAll'; | ||
+ | var indexList = ""; | ||
+ | var sep = ""; | ||
+ | for (var j=1;j<=indexNavigationBar;j++) { | ||
+ | indexList += sep+j; | ||
+ | sep = ","; | ||
+ | } | ||
+ | NavToggle.setAttribute('href', 'javascript:toggleNavigationBars(' + indexList + ');'); | ||
+ | |||
+ | var NavToggleText = document.createTextNode(NavigationBarShowAll); | ||
+ | NavToggle.appendChild(NavToggleText); | ||
+ | |||
+ | // add NavToggle-Button as first div-element | ||
+ | // in < div class="NavFrameToggleAll" > | ||
+ | NavFrameToggleAll.insertBefore( | ||
+ | NavToggle, | ||
+ | NavFrameToggleAll.firstChild | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
// if more Navigation Bars found than Default: hide all | // if more Navigation Bars found than Default: hide all | ||
if (NavigationBarShowDefault < indexNavigationBar) { | if (NavigationBarShowDefault < indexNavigationBar) { | ||
Zeile 132: | Zeile 182: | ||
i++ | i++ | ||
) { | ) { | ||
− | + | var NavFrame = document.getElementById("NavFrame" + i); | |
+ | if (NavFrame.title == "" || | ||
+ | window.location.hash != "#"+encodeURI(NavFrame.title.replace(/ /g, "_")).replace(/%/g, ".")) { | ||
+ | toggleNavigationBar(i); | ||
+ | } | ||
} | } | ||
} | } | ||
Zeile 139: | Zeile 193: | ||
onloadFuncts[onloadFuncts.length] = createNavigationBarToggleButton; | onloadFuncts[onloadFuncts.length] = createNavigationBarToggleButton; | ||
+ | |||
+ | // END Dynamic Navigation Bars | ||
+ | // ============================================================ | ||
+ | |||
+ | /* tooltips and access keys */ | ||
+ | ta = new Object(); | ||
+ | ta['pt-userpage'] = new Array('.','Meine persönliche Seite'); | ||
+ | ta['pt-anonuserpage'] = new Array('.','Benutzerseite der IP-Adresse von der aus Sie Änderungen durchführen'); | ||
+ | ta['pt-mytalk'] = new Array('n','Meine Diskussionsseite'); | ||
+ | ta['pt-anontalk'] = new Array('n','Diskussion über Änderungen von dieser IP-Adresse'); | ||
+ | ta['pt-preferences'] = new Array('','Meine Einstellungen'); | ||
+ | ta['pt-watchlist'] = new Array('l','Liste von Seiten die Sie auf Änderungen überwachen.'); | ||
+ | ta['pt-mycontris'] = new Array('y','Liste meiner Beiträge'); | ||
+ | ta['pt-login'] = new Array('o','Hier kann sich wer mächte anmelden, es ist aber keine Pflicht.'); | ||
+ | ta['pt-anonlogin'] = new Array('o','Hier kann sich wer möchte anmelden, es ist aber keine Pflicht.'); | ||
+ | ta['pt-logout'] = new Array('o','Abmelden'); | ||
+ | ta['ca-talk'] = new Array('t','Diskussion(en) zum Artikel'); | ||
+ | ta['ca-edit'] = new Array('e','Artikel bearbeiten. Bitte nutzen Sie vor dem Speichern die Vorschaufunktion.'); | ||
+ | ta['ca-addsection'] = new Array('+','Einen Kommentar zu dieser Diskussion hinzufügen.'); | ||
+ | ta['ca-viewsource'] = new Array('e','Diese Seite ist geschützt. Sie können sich den Quelltext ansehen.'); | ||
+ | ta['ca-history'] = new Array('h','Vorherige Versionen dieser Seite'); | ||
+ | ta['ca-protect'] = new Array('=','Diese Seite schützen'); | ||
+ | ta['ca-delete'] = new Array('d','Diese Seite löschen'); | ||
+ | ta['ca-undelete'] = new Array('d','Einträge wiederherstellen, bevor diese Seite gelöscht wurde'); | ||
+ | ta['ca-move'] = new Array('m','Diese Seite verschieben'); | ||
+ | ta['ca-watch'] = new Array('w','Diese Seite zu Ihrer Beobachtungsliste hinzufügen'); | ||
+ | ta['ca-unwatch'] = new Array('w','Diese Seite von Ihrer Beobachtungsliste entfernen'); | ||
+ | ta['search'] = new Array('f','In Stargate Wiki suchen'); | ||
+ | ta['p-logo'] = new Array('','Hauptseite'); | ||
+ | ta['n-mainpage'] = new Array('z','Hauptseite anzeigen'); | ||
+ | ta['n-portal'] = new Array('','Überblick über StargateWiki, was sie machen könne, wo man etwas findet'); | ||
+ | ta['n-currentevents'] = new Array('','Hintergrundinformationen zur aktuellen Season'); | ||
+ | ta['n-recentchanges'] = new Array('r','Liste der letzten Änderungen in Stargate Wiki.'); | ||
+ | ta['n-randompage'] = new Array('x','Zufälligen Artikel anzeigen'); | ||
+ | ta['n-help'] = new Array('','Hilfe zu Stargate Wiki.'); | ||
+ | ta['n-sitesupport'] = new Array('','Wie kann man Stargate Wiki unterstüzungen?'); | ||
+ | ta['t-whatlinkshere'] = new Array('j','Liste aller Seiten die auf diesen Artikel verweisen'); | ||
+ | ta['t-recentchangeslinked'] = new Array('k','Letzte Änderungen an Seiten, die von hier verlinkt sind'); | ||
+ | ta['feed-rss'] = new Array('','RSS-Feed für diese Seite'); | ||
+ | ta['feed-atom'] = new Array('','Atom-Feed für diese Seite'); | ||
+ | ta['t-contributions'] = new Array('','Liste der Beiträge dieses Benutzers ansehen'); | ||
+ | ta['t-emailuser'] = new Array('','Eine Mail an den Benutzer senden'); | ||
+ | ta['t-upload'] = new Array('u','Bild- oder Media-File hochladen'); | ||
+ | ta['t-specialpages'] = new Array('q','Liste aller Spezialseiten'); | ||
+ | ta['ca-nstab-main'] = new Array('c','Artikel anzeigen'); | ||
+ | ta['ca-nstab-user'] = new Array('c','Benutzerseite anzeigen'); | ||
+ | ta['ca-nstab-media'] = new Array('c','Mediendateienseite anzeigen'); | ||
+ | ta['ca-nstab-special'] = new Array('','Dies ist eine Spezialseite. Sie können diese nicht ändern.'); | ||
+ | ta['ca-nstab-wp'] = new Array('a','Projektseite anzeigen'); | ||
+ | ta['ca-nstab-image'] = new Array('c','Bilderseite anzeigen'); | ||
+ | ta['ca-nstab-mediawiki'] = new Array('c','Systemmeldungen anzeigen'); | ||
+ | ta['ca-nstab-template'] = new Array('c','Vorlage anzeigen'); | ||
+ | ta['ca-nstab-help'] = new Array('c','Hilfeseite anzeigen'); | ||
+ | ta['ca-nstab-category'] = new Array('c','Kategorieseite anzeigen'); | ||
+ | |||
+ | function jqstart(){ | ||
+ | $("tr[class*='blauzebra']:nth-child(even)").addClass("zebrablau"); | ||
+ | $("tr[class*='grünzebra']:nth-child(even)").addClass("zebragrün"); | ||
+ | $("tr[class*='zeigen']").hover(function(){$(this).toggleClass("zeileaktiv");},function(){$(this).toggleClass("zeileaktiv");}); | ||
+ | } | ||
+ | |||
+ | onloadFuncts[onloadFuncts.length] = jqstart; | ||
+ | |||
+ | onloadFuncts[onloadFuncts.length] = function() { | ||
+ | if ($('.references li').size() < 6) | ||
+ | $('.references').parent().css({ 'column-count': '1', '-moz-column-count': '1', '-webkit-column-count': '1' }); | ||
+ | } | ||
addOnloadHook(function() | addOnloadHook(function() | ||
{ | { | ||
− | if ($(" | + | if ($(".spoiler").size()>0) |
{ | { | ||
var w = document.getElementById("ca-watch"); | var w = document.getElementById("ca-watch"); | ||
Zeile 151: | Zeile 272: | ||
node.onclick = function() | node.onclick = function() | ||
{ | { | ||
− | $(" | + | $(".spoiler").css("display",function(i,d){return d==="inline"?"none":"inline";}); |
$("#ca-spoiler").toggleClass("selected"); | $("#ca-spoiler").toggleClass("selected"); | ||
return false; | return false; | ||
Zeile 166: | Zeile 287: | ||
} | } | ||
}); | }); | ||
− | |||
− |
Version vom 21. August 2010, 11:02 Uhr
// ============================================================ // BEGIN Enable multiple onload functions // setup onload functions this way: // onloadFuncts[onloadFuncts.length] = function_name; // without brackets! // END Enable multiple onload functions // ============================================================ // ============================================================ // BEGIN Dynamic Navigation Bars // NEEDS Enable multiple onload functions // set up the words in your language var NavigationBarHide = 'Einklappen'; var NavigationBarShow = 'Ausklappen'; var NavigationBarShowAll = 'Alle ausklappen'; var NavigationBarHideAll = 'Alle einklappen'; // 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 = 0; } // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled // show: true/false force show/hide instead of toggle function toggleNavigationBar(indexNavigationBar,show) { 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 && show == null) || show == false) { 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 || show == true) { 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; } } } } // Shows/hides several navigation bars at once // Parameters: Each navigationbar index as a seperate parameter function toggleNavigationBars() { var showNow = null; // iterate over all < div >-elements, to toggle the linktext for( var i=0; NavFrameToggleAll = document.getElementsByTagName("div")[i]; i++ ) { if (NavFrameToggleAll.className == "NavFrameToggleAll") { NavToggle = NavFrameToggleAll.firstChild.firstChild if (NavToggle.data == NavigationBarShowAll) { // currently hidden, show now NavToggle.data = NavigationBarHideAll; showNow = true; } else if (NavToggle.data == NavigationBarHideAll) { // currently shown, hide now NavToggle.data = NavigationBarShowAll; showNow = false; } } } // toggle the navigation bars var args = toggleNavigationBars.arguments; for (var i=0;i<args.length;i++) { toggleNavigationBar(args[i],showNow); } } // adds show/hide-button to navigation bars 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); } } // iterate over all < div >-elements for( var i=0; NavFrameToggleAll = document.getElementsByTagName("div")[i]; i++ ) { if (NavFrameToggleAll.className == "NavFrameToggleAll") { var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggleAll'; var indexList = ""; var sep = ""; for (var j=1;j<=indexNavigationBar;j++) { indexList += sep+j; sep = ","; } NavToggle.setAttribute('href', 'javascript:toggleNavigationBars(' + indexList + ');'); var NavToggleText = document.createTextNode(NavigationBarShowAll); NavToggle.appendChild(NavToggleText); // add NavToggle-Button as first div-element // in < div class="NavFrameToggleAll" > NavFrameToggleAll.insertBefore( NavToggle, NavFrameToggleAll.firstChild ); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { var NavFrame = document.getElementById("NavFrame" + i); if (NavFrame.title == "" || window.location.hash != "#"+encodeURI(NavFrame.title.replace(/ /g, "_")).replace(/%/g, ".")) { toggleNavigationBar(i); } } } } onloadFuncts[onloadFuncts.length] = createNavigationBarToggleButton; // END Dynamic Navigation Bars // ============================================================ /* tooltips and access keys */ ta = new Object(); ta['pt-userpage'] = new Array('.','Meine persönliche Seite'); ta['pt-anonuserpage'] = new Array('.','Benutzerseite der IP-Adresse von der aus Sie Änderungen durchführen'); ta['pt-mytalk'] = new Array('n','Meine Diskussionsseite'); ta['pt-anontalk'] = new Array('n','Diskussion über Änderungen von dieser IP-Adresse'); ta['pt-preferences'] = new Array('','Meine Einstellungen'); ta['pt-watchlist'] = new Array('l','Liste von Seiten die Sie auf Änderungen überwachen.'); ta['pt-mycontris'] = new Array('y','Liste meiner Beiträge'); ta['pt-login'] = new Array('o','Hier kann sich wer mächte anmelden, es ist aber keine Pflicht.'); ta['pt-anonlogin'] = new Array('o','Hier kann sich wer möchte anmelden, es ist aber keine Pflicht.'); ta['pt-logout'] = new Array('o','Abmelden'); ta['ca-talk'] = new Array('t','Diskussion(en) zum Artikel'); ta['ca-edit'] = new Array('e','Artikel bearbeiten. Bitte nutzen Sie vor dem Speichern die Vorschaufunktion.'); ta['ca-addsection'] = new Array('+','Einen Kommentar zu dieser Diskussion hinzufügen.'); ta['ca-viewsource'] = new Array('e','Diese Seite ist geschützt. Sie können sich den Quelltext ansehen.'); ta['ca-history'] = new Array('h','Vorherige Versionen dieser Seite'); ta['ca-protect'] = new Array('=','Diese Seite schützen'); ta['ca-delete'] = new Array('d','Diese Seite löschen'); ta['ca-undelete'] = new Array('d','Einträge wiederherstellen, bevor diese Seite gelöscht wurde'); ta['ca-move'] = new Array('m','Diese Seite verschieben'); ta['ca-watch'] = new Array('w','Diese Seite zu Ihrer Beobachtungsliste hinzufügen'); ta['ca-unwatch'] = new Array('w','Diese Seite von Ihrer Beobachtungsliste entfernen'); ta['search'] = new Array('f','In Stargate Wiki suchen'); ta['p-logo'] = new Array('','Hauptseite'); ta['n-mainpage'] = new Array('z','Hauptseite anzeigen'); ta['n-portal'] = new Array('','Überblick über StargateWiki, was sie machen könne, wo man etwas findet'); ta['n-currentevents'] = new Array('','Hintergrundinformationen zur aktuellen Season'); ta['n-recentchanges'] = new Array('r','Liste der letzten Änderungen in Stargate Wiki.'); ta['n-randompage'] = new Array('x','Zufälligen Artikel anzeigen'); ta['n-help'] = new Array('','Hilfe zu Stargate Wiki.'); ta['n-sitesupport'] = new Array('','Wie kann man Stargate Wiki unterstüzungen?'); ta['t-whatlinkshere'] = new Array('j','Liste aller Seiten die auf diesen Artikel verweisen'); ta['t-recentchangeslinked'] = new Array('k','Letzte Änderungen an Seiten, die von hier verlinkt sind'); ta['feed-rss'] = new Array('','RSS-Feed für diese Seite'); ta['feed-atom'] = new Array('','Atom-Feed für diese Seite'); ta['t-contributions'] = new Array('','Liste der Beiträge dieses Benutzers ansehen'); ta['t-emailuser'] = new Array('','Eine Mail an den Benutzer senden'); ta['t-upload'] = new Array('u','Bild- oder Media-File hochladen'); ta['t-specialpages'] = new Array('q','Liste aller Spezialseiten'); ta['ca-nstab-main'] = new Array('c','Artikel anzeigen'); ta['ca-nstab-user'] = new Array('c','Benutzerseite anzeigen'); ta['ca-nstab-media'] = new Array('c','Mediendateienseite anzeigen'); ta['ca-nstab-special'] = new Array('','Dies ist eine Spezialseite. Sie können diese nicht ändern.'); ta['ca-nstab-wp'] = new Array('a','Projektseite anzeigen'); ta['ca-nstab-image'] = new Array('c','Bilderseite anzeigen'); ta['ca-nstab-mediawiki'] = new Array('c','Systemmeldungen anzeigen'); ta['ca-nstab-template'] = new Array('c','Vorlage anzeigen'); ta['ca-nstab-help'] = new Array('c','Hilfeseite anzeigen'); ta['ca-nstab-category'] = new Array('c','Kategorieseite anzeigen'); function jqstart(){ $("tr[class*='blauzebra']:nth-child(even)").addClass("zebrablau"); $("tr[class*='grünzebra']:nth-child(even)").addClass("zebragrün"); $("tr[class*='zeigen']").hover(function(){$(this).toggleClass("zeileaktiv");},function(){$(this).toggleClass("zeileaktiv");}); } onloadFuncts[onloadFuncts.length] = jqstart; onloadFuncts[onloadFuncts.length] = function() { if ($('.references li').size() < 6) $('.references').parent().css({ 'column-count': '1', '-moz-column-count': '1', '-webkit-column-count': '1' }); } addOnloadHook(function() { if ($(".spoiler").size()>0) { var w = document.getElementById("ca-watch"); if (!w) w = document.getElementById("ca-unwatch"); var node = addPortletLink("p-views", "#", "Spoiler aufdecken", "ca-spoiler", "Vorhandene Spoiler auf- und zudecken", "s", w); if (node) { node.onclick = function() { $(".spoiler").css("display",function(i,d){return d==="inline"?"none":"inline";}); $("#ca-spoiler").toggleClass("selected"); return false; }; var img = document.createElement("img"); img.width = "24"; img.height = "24"; img.alt = "Spoiler aufdecken"; img.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/1/17/System-search.svg/24px-System-search.svg.png"; img.style.position = "relative"; img.style.top = "-5px"; node.firstChild.firstChild.replaceChild(img, node.firstChild.firstChild.firstChild); } } });