User:Kate theobaldy/monobook.js

//          DIESE VERSION BITTE NICHT KOPIEREN

// FAQ: // // Frage:  Wie übernehme ich dieses Skript? // // Antwort: Einfach "Quelltext betrachten", alles markieren und kopieren, und dann in deine eigene //         monobook.js (also hierhinein: Benutzer:/monobook.js) kopieren. //         Am sinnvollsten ist es dabei, wenn du die Originalversion von Benutzer:PDD/monobook.js //         übernimmst, da diese immer auf dem neuesten Stand ist. // // Frage:  Kann ich dieses Skript einfach so übernehmen, oder muss ich da tausend Sachen ändern? // // Antwort: Du kannst natürlich alles ändern, aber du musst nicht. Einfach erstmal kopieren, ausprobieren, //         und dann so anpassen, dass es deinem Bedarf gerecht wird. // // Weitere Fragen und Antworten findest du hier: Benutzer:PDD/monobook FAQ // <--- diese Zeile bitte nicht löschen // // Hier bitte eine Signaturvariante aussuchen! // // // (Signaturvariante 1: sinnvoll bei unter "Einstellungen" typografisch angepassten Signaturen) var usersignature = '\~\~\~\~'; // (Signaturvariante 2: Datum kleiner, kein Zeilenumbruch nach dem Leerzeichen) // var usersignature = '-- \~\~\~ \~\~\~\~\~<\/small><\/span>\n'; // (Wiki-Standard-Signatur, bitte das Leerzeichen nach den zwei Strichen beachten) // var usersignature = '-- \~\~\~\~'; // // Originalskript ursprünglich gefunden bei en:User:Angela // bearbeitet von Benutzer:Maximus Rex // bearbeitet von Benutzer:SirJective // bearbeitet von Benutzer:BLueFiSH.as // bearbeitet von Benutzer:Littl (2005-09-07) // bearbeitet von Benutzer:Schwalbe (2006-02-03) // bearbeitet wieder von Benutzer:Littl (2006-02-21) // bearbeitet von Benutzer:PDD (ab 2006-04-22) // aktuelle Zeit ermitteln var jetzt = new Date; // recalculate 4 furriners var jetztfixed = jetzt.getTime; var timezoneshift = 0;         // Unterschied lokale Zeit zur Systemzeit (bleibt für Mitteleuropäer 0) jetztfixed += (timezoneshift * 3600 * 1000); jetzt.setTime(jetztfixed); // fill date variables var Monate = new Array("", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); var Jahr = jetzt.getYear; if (Jahr < 999) Jahr += 1900; var Monat = jetzt.getMonth + 1; var Tag = jetzt.getDate; // fill WP date variables var WPDatum = Tag + '._' + Monate[Monat] + '_' + Jahr; var WPDatum2 = Jahr + '/' + Monate[Monat] + '/' + Tag; var WPDatum3 = Monate[Monat] + ' ' + Jahr; var WPDatum4 = Jahr + '-' + LeadingZero(Monat); // Lemma-Varianten (work in progress) + redundant zu addLogsLink etc. // get page title var pagetitle = wgPageName; var spagetitle = wgTitle; // do real spaces; fix for lemmas with '&' var ptitle = pagetitle.replace(/_/g, " ").split('&').join('%26'); var sptitle = spagetitle.replace(/_/g, " ").split('&').join('%26'); // do + escaped var pesctitle = ptitle.split(' ').join('+'); var spesctitle = sptitle.split(' ').join('+'); // Komma-Lemma für Personen var personlemma = spagetitle; var titlesplit = spagetitle.split(' '); if (titlesplit.length > 1) { personlemma = titlesplit[titlesplit.length-1] + ','; for (i=0; i<(titlesplit.length-1); i++) personlemma=personlemma + " "+titlesplit[i]; } var escpersonlemma = personlemma.replace(/Ä/g, "A").replace(/Ö/g, "O").replace(/Ü/g, "U").replace(/ä/g, "a").replace(/ö/g, "o").replace(/ü/g, "u").replace(/ß/g, "ss"); // get URL parameters (used for page type variables) var UrlParameters = new Array ; readparams; function readparams { var asReadInUrlParameters; var asReadInUrlParameter; // Get URL parameters asReadInUrlParameters = location.search.substring(1, location.search.length).split("&"); for (i = 0; i < asReadInUrlParameters.length; i++) { asReadInUrlParameter = asReadInUrlParameters[i].split("="); UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]); } } // page type variables: namespaces var isArticle      = (wgNamespaceNumber == 0); var isArticleTalk  = (wgNamespaceNumber == 1); var isBild         = (wgCanonicalNamespace == "Image"); var isCategory     = (wgCanonicalNamespace == "Category"); var isTemplate     = (wgCanonicalNamespace == "Template"); var isGeneric      = false; if ((!isBild) && (!isCategory) && (!isTemplate)) isGeneric = true; var isProject      = (wgCanonicalNamespace == "Project"); // page type variables: namespace == -1 var isSpecial = (wgCanonicalNamespace == "Special"); var isRestore = (isSpecial && (wgCanonicalSpecialPageName == "Undelete")); var isContrib = (isSpecial && (wgCanonicalSpecialPageName == "Contributions")); var isWatchlist = (isSpecial && (wgCanonicalSpecialPageName == "Watchlist")); // page type variables: namespace == -1 var isTalk = (!isSpecial && isOdd(wgNamespaceNumber)); // page type variables: other stuff var isPHP    = (document.URL.indexOf('index.php') > 0); var isDiff   = UrlParameters["diff"]; var isEdit   = ((UrlParameters['action']=='edit') || (UrlParameters['action']=='submit')); var isHistory = (UrlParameters['action']=='history'); // userpage/name stuff, vor allem für IPs var userPageOwner = ""; if (isContrib) { if (UrlParameters['target']) userPageOwner = UrlParameters['target'].split('+').join('_'); else { userPageOwner = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0]; userPageOwner = userPageOwner.substring(userPageOwner.indexOf("Beiträge/") + 9); } } // page type variables: user & user discussion lumped together var isUserpage = ( (wgCanonicalNamespace == "User") || (wgCanonicalNamespace == "User_talk") ); var isUserMainpage = false; if (isUserpage) if (wgTitle == wgTitle.split("/")[0]) { isUserMainpage = true; userPageOwner = wgTitle; } // handelt es sich um eine IP? var isIPUser = false; if (userPageOwner != "") if (userPageOwner.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) != null) if ((userPageOwner.split(".")[0] > 1) && (userPageOwner.split(".")[0] < 255)) isIPUser = true; // Admin functions var adminflag = false; if (isAdmin) adminflag = true;

resp = loadFile("User:"+ wgUserName + "/monobook.config.js"); // die Individuellen Einstellungen laden if (resp) eval(resp); else throw 'Konfiguration konnte nicht geladen werden. Breche monobook.js ab.'; importModules; buildQuickbar; // Standardeinstellungen ausführen document.write(Quickbar); if (typeof(version) == 'undefined') var version = "?"; if (!isEdit || zeigeversion || isPHP) { document.write(     ' ',      'Einstell.  ',    (zeigeversion) ?      ('' + (adminflag ? 'A/' : ) + version + '  ')         : ,    (!isEdit) ?      ('  ')         : ' ',      '',          (wgUserName.split(' ')[0].length < 10) ? wgUserName.split(' ')[0] : 'MyPages',      '',      ' '); }                document.write(xxx,' '); if (scrpt > '') { document.write(' function _doopt (was) { switch (was) {', scrpt, '}}<\/script>'); scrpt=''; } // // ab hier functions // function w (was,lurl,linktext,targt,title) { if (!title) title=linktext; if (!zeigehilfe) title=''; if (!dropdown) { switch (was) { case 0 : xxx=xxx+lurl;break; case 1 : xxx=xxx+''+linktext+' ';break; case 2 : xxx=xxx+''+linktext+' ';break; case 3 : xxx=xxx+''+linktext+' ';break; case 4 : xxx=xxx+''+linktext+'</a> ';break; }             } //if else //todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand???? {  var ltext='__________'.substr(1,ind)+linktext; switch (was) { case 0 : if (lurl==br) {xxx=xxx+' '+linktext+' ';ind=2;} else if (lurl==trenner) newdropdown(linktext); break; case 1 : xxx=xxx+'<option value="1|'+lurl+'">'+ltext+' ';break; case 2 : xxx=xxx+'<option value="2|'+scrptn+'">'+ltext+' '; scrpt=scrpt+'case '+scrptn+':newtext('+lurl+');break;';scrptn++;break; case 3 : xxx=xxx+'<option value="3|'+scrptn+'">'+ltext+' '; scrpt=scrpt+'case '+scrptn+':insertTagsWrapper('+lurl+');break;';scrptn++;break; case 4 : xxx=xxx+'<option value="4|'+scrptn+'">'+ltext+' '; scrpt=scrpt+'case '+scrptn+':'+lurl+';break;';scrptn++;break; } //switch } //else } //w function dodropdown (aktion) { var zutun = aktion.split('|'); var was = Number(zutun[0]); var wie = zutun[1]; switch (was) { case 1 : window.open (wie); break; case 2 : _doopt (Number(wie)); break; case 3 : _doopt (Number(wie)); break; case 4 : _doopt (Number(wie)); break; } //switch } //dodropdown function newdropdown (oname) { closedropdown; xxx=xxx+'<select size=1 onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">'; if (oname > '') {xxx=xxx+' '+oname+' ';} indropdown = true; ind=2; } function closedropdown { if (indropdown) xxx=xxx+' '; indropdown = false; } function newtext (subj,text,wo) { //wo=1 : Text austauschen //wo=2 : Text am Ende anhängen //wo=3 : Text vorne Einfügen if (subj > "") { if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", "; document.editform.wpSummary.value = document.editform.wpSummary.value + subj; }  switch (wo) { case 1 : document.editform.wpTextbox1.value=text+'\n'; break; case 2 : document.editform.wpTextbox1.value=document.editform.wpTextbox1.value+'\n'+text;break; case 3 : document.editform.wpTextbox1.value=text+'\n'+document.editform.wpTextbox1.value;break; }      document.editform.wpTextbox1.focus; } function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) { if (subj > "") { if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", "; document.editform.wpSummary.value = document.editform.wpSummary.value + subj; }  insertTags(tagOpen, tagClose, sampleText) } // Krimskrams function isEven(myNumber) { return (myNumber % 2 == 0); } function isOdd(myNumber) { return (! isEven(myNumber)); } function LeadingZero(x) { return (x >= 10 || x < 0 ? "" : "0") + x; } function isAdmin { var specialrights = false; if (typeof wgUserGroups != 'object') return(specialrights); if (typeof wgUserGroups[0] != 'string') return(specialrights); for (i=0;i<wgUserGroups.length;i++) { if (wgUserGroups[i] == "sysop") specialrights = true; }  return(specialrights); } // Funktion: importPage // zum Einbinden der Module function importPage(seite, lang) { // all languages support name='User:'; // international name, works in all wikipedias if(!lang) lang = wgContentLanguage; // new version seite = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=' + name + seite + '&action=raw&ctype=text/javascript&smaxage=2678400&dontcountme=s'; var head = document.getElementsByTagName('head').item(0); var js = document.createElement('script'); js.setAttribute('type', 'text/javascript'); js.setAttribute('src', seite); js.setAttribute('charset', 'utf-8'); head.appendChild(js); return false; // old version // document.write('<SCRIPT TYPE="text/javascript" SRC="http://' + lang   // + '.wikipedia.org/w/index.php?title=' + name + seite    // + '&action=raw&ctype=text/javascript&smaxage=2678400&dontcountme=s"><\/SCRIPT>'); } /** Imports a user javascript page from any wikipedia project into the actual document. @version 0.1 @date 2007/03/22 @author: based on function importPage from de:User:PDDs monobook.js, extended by de:User:Revvar @param page Name of the user page without the "user:" prefix and the ".js" appendix @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project. @return "true" on success, "false" otherwise */ function importJavascript(page, lang) {   try { /* check the parameters and set defaults */ if(!page) throw("importJavascript: Missing parameter page."); if(!lang) lang = wgContentLanguage; /* create import url */ var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page + '.js&action=raw&ctype=text/javascript&smaxage=2678400&dontcountme=s'; /* import page */ var Head = document.getElementsByTagName('head').item(0); var Script = document.createElement('script'); Script.setAttribute('type', 'text/javascript'); Script.setAttribute('src', import_url); Script.setAttribute('charset', 'utf-8'); Head.appendChild(Script); return true; } catch(e) { alert(e.message); return false; } } /** Imports a user css page from any wikipedia project into the actual document. @version 0.1 @date 2007/03/22 @author: based on function importPage from de:User:PDDs monobook.js, rewritten by de:User:Revvar @param page Name of the user page without the "user:" prefix and the ".css" appendix @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project. @return "true" on success, "false" otherwise */ function importCSS(page, lang) {   try { /* check the parameters and set defaults */ if(!page) throw("importCSS: Missing parameter page."); if(!lang) lang = wgContentLanguage; /* create import url */ var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page + '.css&action=raw&ctype=text/css&smaxage=2678400&dontcountme=s'; /* import page */ var Head = document.getElementsByTagName('head').item(0); var CSS = document.createElement('style'); CSS.setAttribute('type', 'text/javascript'); CSS.setAttribute('charset', 'utf-8'); CSS.appendChild(document.createTextNode("@import url(" + import_url + ");")); Head.appendChild(CSS); return true; } catch(e) { alert(e.message); return false; } } /* * Lade individuelle Einstellungen, wenn vorhanden */ function loadFile(file) { // load monobook.config.js via AJAX // Mit Hilfe von: Benutzer:MrMage xmlHttp = null; if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest; } if (!xmlHttp) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { throw 'Konnte keinen XMLHttpRequest erstellen. Breche monobook.js ab.'; } }    }     if (xmlHttp) { xmlHttp.open('GET', 'http://de.wikipedia.org/w/index.php?title='+ file +'&action=raw&ctype=text/javascript&dontcountme=s', false); xmlHttp.send(null); return (xmlHttp.responseText); }    return false; } // ***** FOOT-Block ***** // <- nicht löschen!!! function importModules { // ausgelagerte obligatorische Funktionen importPage('PDD/helperFunctions.js'); // Benutzer:PDD/helperFunctions.js importPage('PDD/eintragen.js'); // Benutzer:PDD/eintragen.js importPage('PDD/alertOnChanges.js'); // Benutzer:PDD/alertOnChanges.js // semi-obligatorisch nur für diffpages if (diffwidth && isDiff) { // PDD: keine der beiden Versionen bisher getestet; weiß also nicht, welche besser funktioniert importPage('Olliminatore/fixdiffwidth.js'); // Benutzer:Olliminatore/fixdiffwidth.js // importPage('BLueFiSH.as/JS/fixdiffwidth'); // Benutzer:BLueFiSH.as/JS/fixdiffwidth }	 // obligatorisch nur für editpages if (isEdit) { importPage('PDD/wpTextReplace.js'); // Benutzer:PDD/wpTextReplace.js importPage('PDD/replaceQuoteSigns.js'); // Benutzer:PDD/replaceQuoteSigns.js // importPage('PDD/replaceQuoteSigns2.js'); // Benutzer:PDD/replaceQuoteSigns2.js importPage('BLueFiSH.as/JS/markup'); // Benutzer:BLueFiSH.as/JS/markup importPage('Spongo/persDaten.js'); // Benutzer:Spongo/persDaten.js }	 // ausgelagerte optionale Funktionen (Autoload) // revert/loglink-Funktionen: möglichst früh einbinden // Revert godmode-light if (godmodelight && !adminflag && !isEdit && !(isSpecial && !isContrib)) { importPage('PDD/godmode-light.js'); // Benutzer:PDD/godmode-light.js // importPage('Olliminatore/godmode-light.js','en'); // en:User:Olliminatore/godmode-light.js }	 // Revert addEditAndRevertLinks if (!(!aerhistory && isHistory) && !isEdit) { if (editlinkoldversion || revertwithreason) importPage('PDD/addEditAndRevertLinks.js'); // Benutzer:PDD/addEditAndRevertLinks.js }	 // LogLinks addLogsLink if (addlogslink && !isSpecial) importPage('PDD/addLogsLink.js'); // Benutzer:PDD/addLogsLink.js // jetzt alles andere, was optional ist if (!isSpecial) if (addeditintro || addpurge) importPage('PDD/modifyCA.js'); // Benutzer:PDD/modifyCA.js // changeBeschriftungen *nach* modifyCA.js (!) if (beschriftungen) importPage('PDD/changeBeschriftungen.js'); // Benutzer:PDD/changeBeschriftungen.js if (changeszlig) importPage('PDD/changeSZtoSS.js'); // Benutzer:PDD/changeSZtoSS.js if (rechtschreibpruefung && !isSpecial) { DontAutorunRP = !AutorunRP; importPage('APPER/RP/js'); // Benutzer:APPER/RP/js }	 if (ippvandalmark && !isEdit) importPage('APPER/IP-Patrol/js'); // Benutzer:APPER/IP-Patrol/js if (showredundantlinks && !isSpecial) importPage('PDD/showRedundantLinks.js'); // Benutzer:PDD/showRedundantLinks.js // Signierfunktionen if (isEdit && !isArticle) { if (signing) importPage('Olliminatore/signing.js'); // Benutzer:Olliminatore/signing.js if (unsigning) importPage('Olliminatore/unsigned.js'); // Benutzer:Olliminatore/unsigned.js }	 // extended search & replace feature if (isEdit && searchbox) importPage('Zocky/SearchBox.js','en'); // en:User:Zocky/SearchBox.js // Portal- und Redaktionshinweis if (hinweis) importPage('DerHexer/hinweise.js'); // Benutzer:DerHexer/hinweise.js // Löschgründe ergänzen if (adminflag && delreasons && !isSpecial) importPage('DerHexer/delete.js'); // Benutzer:DerHexer/delete.js // Syntax highlighter if (js_highlight) importPage('Olliminatore/shCore.js','en'); // en:User:Olliminatore/shCore.js // wikiminiatlas: Atlas bei Georeferenzen if (miniatlas && !isSpecial) importPage('Dschwen/wikiminiatlas2.js'); // Benutzer:Dschwen/wikiminiatlas2.js // coordinates: Generierung der Koordinaten-Vorlage if (coordinates && isEdit) importPage('Dschwen/coordinates.js'); // Benutzer:Dschwen/coordinates.js // showreftoggle if (reftoggle && !isSpecial) importPage('Malte_Schierholz/reftoggle.js'); // Benutzer:Malte Schierholz/reftoggle.js // setGallery if (newgallery && !isSpecial) importPage('Olliminatore/newgallery.js'); // Benutzer:Olliminatore/newgallery.js // custom toolbar buttons if (customtoolbar) importPage('Olliminatore/customToolbar.js'); // Benutzer:Olliminatore/customToolbar.js // quickedit if (qeEnabled) importPage('ASM/quickedit.js'); // Benutzer:ASM/quickedit.js // RIPE tooltips if (ripe && !isEdit) importPage('PDD/tooltips.js'); // Benutzer:PDD/tooltips.js // dellinknowcommons if (dellinknowcommons && adminflag && isBild) importPage('PDD/dellink-nc.js'); // Benutzer:PDD/dellink-nc.js // Lupin's popups if (lupinpopups) importPage('Lupin/popups.js','en');  // en:User:Lupin/popups.js // Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern if (!(!mawatchlist && isWatchlist) && !(!macontribs && isContrib)) { if (markadmins || markexadmins || markcomadmins) importPage('PDD/markAdmins.js'); // Benutzer:PDD/markAdmins.js }	 if (!(!muwatchlist && isWatchlist) && !(!mucontribs && isContrib)) { if (markutf8) importPage('PDD/markUTF8.js'); // Benutzer:PDD/markUTF8.js }	 importPage('Spongo/configMonobook.js'); // Benutzer:Spongo/configMonobook.js } // Und hier ist die monobook.js zu Ende.