Benutzer:Schuhpuppe/monobook.js
aus Wikipedia, der freien Enzyklopädie
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
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
// Typografie-Korrektur
includePage('Benutzer:Jowereit/typografie.js');
//DÜP-Monobook-Import ([[Benutzer:Forrester/düp-setzen-monobook.js]])
importScript('Benutzer:Forrester/düp-setzen-monobook.js');
// MARK AUTOMATICALLY UNSIGNED COMMENTS ON TALK PAGES:
//<pre><nowiki>
// Below (unsigned2.js version 1.3,) by Invitatious. Dual-licensed under the terms of the GFDL v1.2 or the GPL v2.
// New features in this version: you can now choose an edit from the last 16.
// [[User:Olliminatore/unsigned.js]] (suggested), converted/ localized for de:
if (typeof usersignature == 'undefined') var usersignature = '-- \~\~\~\~';
if (typeof addownsig == 'undefined') var addownsig = false;
var ssubst = (typeof ssubst == 'undefined'||ssubst)? 'subst:' : '';
var addedusersig = addownsig? ('3=' + usersignature) : '';
function get_last_sunday_of_month(year, month){
var last_sunday = -1;
var d = new Date(year,month,22);
for(var day=1; month==d.getUTCMonth(); ++day){
if(d.getDay()==0) last_sunday = 22-1+day;
d = new Date(Date.UTC(year,month,22,0,0,0)+day*24*60*60*1000);
}
return last_sunday;
}
// is_daylight_saving_time
function is_dst(year, month, day, hours){
var to_check = Date.UTC(year, month, day, hours, 0, 0);
var begin_dst = Date.UTC(year, 2, get_last_sunday_of_month(year, 2), 1, 0, 0); // 2 = march
var end_dst = Date.UTC(year, 9, get_last_sunday_of_month(year, 9), 1, 0, 0); // 9 = october
return (begin_dst<=to_check && to_check<end_dst);
}
function addSigWikiCode() {
// From revision 28011729 of [[:en:Wikipedia:WikiProject_User_scripts/Scripts/Get_tidy_title]]
function aswcGet_tidy_title(){ // Get's the URL version of the page title.
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
// cut everything up to "title=" from the start and everything past "&action=edit" from the end
editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit'));
return editlk // The result from this function might be needed unescape()ed
};
// LOCALIZABLE STRINGS START.
var lsMonth_names = ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
lsConflict = "Edit-Konflikt.",
lsDialog1 = "Bitte wähle einen Edit unten:\n\n",
lsDialog2 = "Unsigned Edit-Nummer:",
lsInvalid1 = "Bitte eine gültige Zahl eintragen oder diese Operation annullieren.",
lsInvalid2 = "Dieser Edit ist eine sogenannte Kleine Änderung. Trotzdem wählen?", // Minoredit
lsNoRev = "Keine Veränderung gefunden. Besteht die Seite?",
lsNoXMLHTTP = "Couldn't get XMLHTTP!",
lsMinor = "K ";
// LOCALIZABLE STRINGS END
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : false; // Try to use native XMLHTTP
if (!xmlhttp && window.ActiveXObject) { // ActiveX XMLHTTP
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
if (!xmlhttp) xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (!xmlhttp) return alert(lsNoXMLHTTP); // No XMLHTTP
xmlhttp.open("GET", "/w/api.php?format=xml&action=query&prop=revisions&rvlimit=16&rvcomments&titles=" + aswcGet_tidy_title()); // Get timestamp, user, summary of last 16 edits
xmlhttp.onreadystatechange = function (){
if(xmlhttp.readyState!=4) return;
if (!xmlhttp) return alert("Error: "+lsNoXMLHTTP + "\n" + xmlhttp.status + ": " + xmlhttp.statusText ); // No XMLHTTP
var xmldoc = xmlhttp.responseXML;
// IE workaround suggested by [[User:Olliminatore]]
if (!xmldoc.documentElement && window.ActiveXObject) { // !FIXME: IE6 can't read XML???
document.body.style.backgroundColor = "#CCCCFF"; // Debugging aid
xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = false;
xmldoc.loadXML(xmlhttp.responseText);
}
var revisions = xmldoc.documentElement.getElementsByTagName("rev"); // Get the revisions
if (revisions.length < 1) return alert(lsNoRev); // No revisions
var t = revisions[0].getAttribute("timestamp").replace(/[^0-9]/g, ""); // Get rid of non-numeric characters in timestamp
if(t != document.editform.wpEdittime.value) // Detect an edit conflict
return alert(lsConflict);
var dialog_text = lsDialog1;
var edit_data = [];
var edit_data2 = []; // with minoredits
var minor = "";
for (var n = 0; n < revisions.length; n++) { // Extract edit data and build dialog text
minor = (revisions[n].getAttribute("minor") != null)? lsMinor : "";
edit_data[n] = {timestamp: revisions[n].getAttribute("timestamp").replace(/[^0-9]/g, ""),
user: revisions[n].getAttribute("user"),
comment: revisions[n].getAttribute("comment")};
dialog_text += ("[" + n.toString(16).toUpperCase() + "] " + edit_data[n].timestamp + " " +
edit_data[n].user + ": " + minor + ((edit_data[n].comment == null)? "–": edit_data[n].comment)).substring(0, 80) + "\n";
edit_data2[n] = edit_data[n];
if (minor) edit_data.pop() //continue; // Skip minor edits
}
while (true) {
if (edit_data.length == 1) var unsigned_edit = 0; // no choice
else if (is_gecko) // for Mozilla, def in wikibits.js
var unsigned_edit = prompt(dialog_text + "\n" + lsDialog2, "0");
else { // for IE or other
alert(dialog_text);
var unsigned_edit = prompt(lsDialog2, "0");
}
if (unsigned_edit == null) return; // Cancel button
else if (isNaN(unsigned_edit = parseInt(unsigned_edit, 16))) return alert(lsInvalid1); // Non-numeric input
else if (!(edit_data[unsigned_edit])) {
if (confirm(lsInvalid2)){ // Non-existent edit
unsigned_edit = edit_data2[unsigned_edit];
} else return;
} else unsigned_edit = edit_data[unsigned_edit];
t = unsigned_edit.timestamp; // So the full name doesn't have to be used
// LOCALIZABLE STRINGS START (current de:)
var year = t.substring(0, 4);
var month = t.substring(4, 6);
var day = (t.substring(6, 8) - 0);
var hours = parseInt(t.substring(8, 10), 10);
// add timezone offset
var dst_offset = (is_dst(year, month-1, day, hours)) ? 2 : 1; // daylight saving time (true, false)
var tzcode = (dst_offset == 2)? 'CEST' : 'CET';
// get UTC time in msec
nd = new Date(year, month-1, day, hours).getTime();
// create new Date object for different
// using timezone offset
nd = new Date(nd + 3600000*dst_offset);
year = nd.getFullYear();
month = 1+nd.getMonth();
day = nd.getDate();
hours = nd.getHours();
// Format and insert the tag. The data returned by api.php is UTC, FetchTimezone is needed.
insertTags("{{"+ssubst+"unsigned|" + unsigned_edit.user + "|" + hours + ":" + t.substring(10, 12) + ", " + day + ". " + lsMonth_names[month - 1] + ". " + year + " (" + tzcode + ")|ALT=nicht|" + addedusersig + "}}", "", "");
// LOCALIZABLE STRINGS END
return;
}
};
xmlhttp.send(null);
};
$(function() { // put onload in wikibits.js
// From [[:en:Wikipedia:WikiProject_User_scripts/Scripts/Add_LI_link]]
function aswcAddlilink(tabs, url, name, id, title, key) {
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
//tabs.appendChild(li); // to end
ta_hi = document.getElementById('ca-history'); // to versions tab
if (ta_hi) tabs.insertBefore(li, ta_hi);
if (id) {
if (key && title) ta[id] = [key, title];
else if (key) ta[id] = [key, ''];
else if (title) ta[id] = ['', title];
}
akeytt(); // re-render the title and accesskeys from existing code in wikibits.js
return li;
};
if (!wgIsArticle)
aswcAddlilink(document.getElementById('p-cactions').getElementsByTagName('ul')[0], "javascript:addSigWikiCode();", /* LOCALIZABLE STRINGS START */ "Unsigniert" , "ca-unsigned", "Markiere einen unsignierten Kommentar", "" /* LOCALIZABLE STRINGS END */);
});
// Above by Invitatious. Dual-licensed under the terms of the GFDL v1.2 or the GPL v2.
//</nowiki></pre>