Benutzer:Codeispoetry/PDD.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// (PDD: note to self: version auch in alert-Funktion ändern!)
var version = 'P098u';
var user = wgUserName; // username wird automatisch übernommen
// aktuelle Zeit ermitteln
var jetzt = new Date();
// recalculate 4 furriners
var jetztfixed = jetzt.getTime();
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 Monatekurz = new Array("", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
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);
var WPDatum5 = Jahr + LeadingZero(Monat) + '/';
var refDatum = Tag + '. ' + Monatekurz[Monat] + '. ' + Jahr;
var refDatumlang = Tag + '. ' + Monate[Monat] + ' ' + Jahr;
// 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 (" " to "+")
var pesctitle = spaceEscape(ptitle);
var spesctitle = spaceEscape(sptitle);
// lemmatitle for external lookup
var spesctitlelookup = spesctitle.split('+(')[0];
// Komma-Lemma für Personen (Klammerzusätze weg etc.)
var personlemma = spagetitle.split(' (')[0];
var titlesplit = personlemma.split(' ');
if (titlesplit.length > 1) {
personlemma = titlesplit[titlesplit.length-1] + ',';
for (i=0; i<(titlesplit.length-1); i++)
personlemma=personlemma + " "+titlesplit[i];
}
// 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 = (mw.config.get('wgNamespaceNumber') == 0);
var isArticleTalk = (mw.config.get('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"); /* NR Wikipedia: */
var isHelp = (wgCanonicalNamespace == "Help"); /* NR Hilfe */
// page type variables: namespace == -1
var isSpecial = (wgCanonicalNamespace == "Special");
var isRestore = (isSpecial && (wgCanonicalSpecialPageName == "Undelete"));
var isContrib = (isSpecial && (wgCanonicalSpecialPageName == "Contributions"));
var isDelContrib = (isSpecial && (wgCanonicalSpecialPageName == "DeletedContributions"));
var isWatchlist = (isSpecial && (wgCanonicalSpecialPageName == "Watchlist"));
// page type variables: namespace == -1
var isTalk = (!isSpecial && isOdd(mw.config.get('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 || isDelContrib) {
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 & editor functions
var adminflag = false;
if (hasRight("sysop")) adminflag = true;
var editorflag = false;
if (hasRight("editor")) editorflag = true;
// Browserkram
var userbrowser = "Standard";
if (navigator.userAgent.indexOf("Opera") > -1)
userbrowser = "Opera";
if (navigator.userAgent.indexOf("Safari") > -1)
userbrowser = "Standard";
if (navigator.userAgent.indexOf("MSIE") > -1) {
userbrowser = "IE";
if (navigator.userAgent.indexOf("MSIE 7") > -1)
userbrowser = "IE7";
}
// force Browserswitches
if ((userbrowser == "IE") || (userbrowser == "IE7")) {
godmodelight = false;
showredundantlinks = false;
}
if (userbrowser == "Opera") {
godmodelight = false;
}
//
// ab hier functions
//
// Krimskrams
function isEven(myNumber) {
return (myNumber % 2 == 0);
}
function isOdd(myNumber) {
return (myNumber % 2 == 1);
}
function LeadingZero(x) {
return (x >= 10 || x < 0 ? "" : "0") + x;
}
function hasRight(right) {
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] == right) specialrights = true;
}
return(specialrights);
}
function quickEscape(text, esctype)
{
// esctype = 1 -> normal umlaut escapes
// esctype = 2 -> wikisort umlaut escapes
text = text.replace(/ß/g, "ss");
text = text.replace(/Á/g,"A").replace(/á/g,"a")
.replace(/À/g,"A").replace(/à/g,"a")
.replace(/Ă/g,"A").replace(/ă/g,"a")
.replace(/Â/g,"A").replace(/â/g,"a")
.replace(/Å/g,"A").replace(/å/g,"a")
.replace(/Ā/g,"A").replace(/ā/g,"a")
.replace(/Ć/g,"C").replace(/ć/g,"c")
.replace(/Č/g,"C").replace(/č/g,"c")
.replace(/Ç/g,"C").replace(/ç/g,"c")
.replace(/Đ/g,"Dj").replace(/đ/g,"dj")
.replace(/É/g,"E").replace(/é/g,"e")
.replace(/È/g,"e").replace(/è/g,"e")
.replace(/Ë/g,"e").replace(/ë/g,"e")
.replace(/Ě/g,"e").replace(/ě/g,"e")
.replace(/Ğ/g,"G").replace(/ğ/g,"g")
.replace(/Í/g,"I").replace(/í/g,"i")
.replace(/Ì/g,"I").replace(/ì/g,"i")
.replace(/İ/g,"I").replace(/ı/g,"i")
.replace(/Î/g,"I").replace(/î/g,"i")
.replace(/Ł/g,"L").replace(/ł/g,"l")
.replace(/Ļ/g,"L").replace(/ļ/g,"l")
.replace(/Ń/g,"N").replace(/ń/g,"n")
.replace(/Ñ/g,"N").replace(/ñ/g,"n")
.replace(/Ň/g,"N").replace(/ň/g,"n")
.replace(/Ņ/g,"N").replace(/ņ/g,"n")
.replace(/Ó/g,"O").replace(/ó/g,"o")
.replace(/Ò/g,"O").replace(/ò/g,"o")
.replace(/Ø/g,"O").replace(/ø/g,"o")
.replace(/Õ/g,"O").replace(/õ/g,"o")
.replace(/Ő/g,"O").replace(/ő/g,"o")
.replace(/Ř/g,"R").replace(/ř/g,"r")
.replace(/Ś/g,"S").replace(/ś/g,"s")
.replace(/Š/g,"S").replace(/š/g,"s")
.replace(/Ş/g,"S").replace(/ş/g,"s")
.replace(/Ţ/g,"T").replace(/ţ/g,"t")
.replace(/Ú/g,"U").replace(/ú/g,"u")
.replace(/Ù/g,"U").replace(/ù/g,"u")
.replace(/Ű/g,"U").replace(/ű/g,"u")
.replace(/Ů/g,"U").replace(/ů/g,"u")
.replace(/Ý/g,"Y").replace(/ý/g,"y")
.replace(/Ź/g,"Z").replace(/ź/g,"z")
.replace(/Ž/g,"Z").replace(/ž/g,"z")
.replace(/Ż/g,"Z").replace(/ż/g,"z");
if (esctype == 1) {
text = text.replace(/Ä/g,"Ae").replace(/ä/g,"ae")
.replace(/Ö/g,"Oe").replace(/ö/g,"oe")
.replace(/Ü/g,"Ue").replace(/ü/g,"ue")
.replace(/Ə/g,"Ae").replace(/ə/g,"ae");
} else {
text = text.replace(/Ä/g,"A").replace(/ä/g,"a")
.replace(/Ö/g,"O").replace(/ö/g,"o")
.replace(/Ü/g,"U").replace(/ü/g,"u")
.replace(/Ə/g,"A").replace(/ə/g,"a");
}
return(text);
}
function tagEscape(text) {
return(text.replace(/'/g, "%27").replace(/"/g, "%22"));
}
function untagEscape(text) {
return(text.replace(/%27/g, "'").replace(/%22/g, '"'));
}
function spaceEscape(text) {
return(text.replace(/ /g, "+").replace(/_/g, "+"));
}
/**
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:PDD]]s monobook.js, extended by [[de:User:Revvar]]
@param page Name of the page
@param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
@return "true" on success, "false" otherwise
*/
function importJavascriptL(page, lang)
{
try {
/* check the parameters and set defaults */
if(!page) throw("importJavascriptL: Missing parameter page.");
if(!lang) lang = wgContentLanguage;
/* create import url */
mw.loader.load('http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=' + page + '&action=raw&ctype=text/javascript&smaxage=10000');
return true;
} catch(e) {
alert(e.message);
return false;
}
}
// 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
mw.loader.load('http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=' + name + seite + '&action=raw&ctype=text/javascript&smaxage=10000');
return false;
}
// ***** FOOT-Block *****
// </nowiki> <- nicht löschen!!!
importScript('User:Codeispoetry/quickbar.js'); // [[Benutzer:Codeispoetry/quickbar.js]]
addOnloadHook (function () {createBar(); buildQuickbar(); if (scrpt > '') {
document.write('<script> function _doopt (was) { switch (was) {', scrpt, '}}<\/script>');
scrpt='';
}});
// ausgelagerte obligatorische Funktionen
importScript('User:Codeispoetry/helperFunctions.js'); // [[Benutzer:Codeispoetry/helperFunctions.js]]
importScript('User:Codeispoetry/supportFuncs.js'); // [[Benutzer:Codeispoetry/supportFuncs.js]]
importScript('User:PDD/eintragen.js'); // [[Benutzer:PDD/eintragen.js]]
importScript('User:PDD/alertOnChanges.js'); // [[Benutzer:PDD/alertOnChanges.js]]
// obligatorisch nur für editpages
if (isEdit) {
importScript('User:PDD/wpTextReplace.js'); // [[Benutzer:PDD/wpTextReplace.js]]
importScript('User:BLueFiSH.as/JS/replaceQuoteSigns.js'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
importScript('User:BLueFiSH.as/JS/markup.js'); // [[Benutzer:BLueFiSH.as/JS/markup.js]]
importScript('User:PDD/convertEntities.js'); // [[Benutzer:PDD/convertEntities.js]]
importScript('User:Euku/persDaten.js'); // [[Benutzer:Euku/persDaten.js]]
}
// ausgelagerte optionale Funktionen (Autoload)
// revert/loglink-Funktionen: möglichst früh einbinden
// Revert addEditAndRevertLinks
if (!(!aerhistory && isHistory) && !isEdit && (editlinkoldversion || revertwithreason))
importScript('User:PDD/addEditAndRevertLinks.js'); // [[Benutzer:PDD/addEditAndRevertLinks.js]]
// LogLinks addLogsLink
if (addlogslink && !isSpecial) importScript('User:PDD/addLogsLink.js'); // [[Benutzer:PDD/addLogsLink.js]]
// jetzt alles andere, was optional ist
if (!isSpecial)
if (addeditintro || addpurge) importScript('User:PDD/modifyCA.js'); // [[Benutzer:PDD/modifyCA.js]]
// changeBeschriftungen *nach* modifyCA.js (!)
if (beschriftungen) importScript('User:PDD/changeBeschriftungen.js'); // [[Benutzer:PDD/changeBeschriftungen.js]]
if (sperrstatus) importScript('User:Stefan/Sperrstatus.js'); // [[Benutzer:Stefan/Sperrstatus.js]]
if (showredundantlinks && !isSpecial)
importScript('User:PDD/showRedundantLinks.js'); // [[Benutzer:PDD/showRedundantLinks.js]]
// Signierfunktionen
if (isEdit && !isArticle) {
if (unsigning) importScript('User:Olliminatore/unsigned.js'); // [[Benutzer:Olliminatore/unsigned.js]]
}
// extended search & replace feature
if (isEdit && searchbox) importJavascriptL('User:Zocky/SearchBox.js', 'en') // [[:en:User:Zocky/SearchBox.js]]
// Adminfunktionen ergänzen
if (adminflag) importScript('User:Codeispoetry/admin.js'); // [[Benutzer:Codeispoetry/admin.js]]
// Syntax highlighter
if (js_highlight) importJavascriptL('User:Olliminatore/shCore.js', 'en'); // [[:en:User:Olliminatore/shCore.js]]
// dellinknowcommons
if (dellinknowcommons && isBild)
importScript('User:Codeispoetry/dellink-nc.js'); // [[Benutzer:Codeispoetry/dellink-nc.js]]
// Codeispoetrys DupeCheck
if (imgdupecheck && isBild)
importScript('User:Codeispoetry/checkDupes.js'); // [[Benutzer:Codeispoetry/checkDupes.js]]
if (markerledigt) importScript('User:Euku/markErledigt.js'); // [[Benutzer:Euku/markErledigt.js]]