„Benutzer:Umherirrender/monobook-sul.js“ – Versionsunterschied
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
K relative.js - https://de.wikipedia.org/w/index.php?title=MediaWiki_Diskussion:Common.js&oldid=94938916#MediaWiki:Common.js.2Frelative.js |
K makeProtocolsRelative: regex verfeinert |
||
Zeile 762: | Zeile 762: | ||
$(function makeProtocolsRelative() { |
$(function makeProtocolsRelative() { |
||
// zuverlässig mit beiden Protokollen verhaltensgleich funktionierende Domains |
// zuverlässig mit beiden Protokollen verhaltensgleich funktionierende Domains |
||
var reg = new RegExp("^https?\\:\\/\\/(" + [ |
var reg = new RegExp("^https?\\:\\/\\/(?:" + [ |
||
// (?:download|.*?mobile|.*?m|mail) funktionieren nicht oder unterschiedlich |
// (?:download|.*?mobile|.*?m|mail) funktionieren nicht oder unterschiedlich |
||
"(?!download|. |
"(?!download|(?:[^.]+\\.)?mobile|(?:[^.]+\\.)?m|mail).*?\\.?wik(?:ipedia|tionary|ibooks|iquote|iversity|isource|inews|imediafoundation)", |
||
// (?:dumps|downloads|stats|noc|ganglia|.*?planet|mail) funktionieren nicht oder unterschiedlich |
// (?:dumps|downloads|stats|noc|ganglia|.*?planet|mail) funktionieren nicht oder unterschiedlich |
||
// ticket und bugzilla leiten eh nur auf https weiter, donate auf http://wikimediafoundation.org |
// ticket und bugzilla leiten eh nur auf https weiter, donate auf http://wikimediafoundation.org |
||
// das wäre nur lang und umständlich: "(?:lists|upload|techblog|blog|wikitech|svn|commons|incubator|.+?\\.labs|nyc|species|advisory|ar|bd|br|co|dk|et|fi|il|mk|mx|nl|no|nc|pa\\.us|pl|pt|rs|ru|se|tr|ua|uk|ve|board|boardgovcom|noboard\\.chapters|auditcom|chair|chapcom|checkuser|steward|collab|exec|grants|internal|movementroles|office|searchcom|spcom|otrs-wiki|quality|meta|outreach|volunteer|strategy|usability|survey|wikimania.*?)\\.wikimedia", |
// das wäre nur lang und umständlich: "(?:lists|upload|techblog|blog|wikitech|svn|commons|incubator|.+?\\.labs|nyc|species|advisory|ar|bd|br|co|dk|et|fi|il|mk|mx|nl|no|nc|pa\\.us|pl|pt|rs|ru|se|tr|ua|uk|ve|board|boardgovcom|noboard\\.chapters|auditcom|chair|chapcom|checkuser|steward|collab|exec|grants|internal|movementroles|office|searchcom|spcom|otrs-wiki|quality|meta|outreach|volunteer|strategy|usability|survey|wikimania.*?)\\.wikimedia", |
||
"(?!secure|dumps|downloads|stats|noc|ganglia|. |
"(?!secure|dumps|downloads|stats|noc|ganglia|(?:[^.]+\\.)?planet|mail|ticket|bugzilla|donate).*?\\.?wikimedia", |
||
"www\\.mediawiki", |
"www\\.mediawiki", |
||
// wiki.toolserver leitet eh nur auf https weiter |
// wiki.toolserver leitet eh nur auf https weiter |
Version vom 6. November 2011, 13:08 Uhr
/*
* @author Umherirrender - [[:de:User:Umherirrender]]
* develop with and for Internet Explorer 8
*
* gegen Übernahmen spricht nichts, nur bitte nicht diese JavaScript-Seite direkt einbinden
* ohne Gewähr und ohne Support
*
* eigene Anpassungen für alle Wikis
*/
/*
* Gibt die Zieladresse eines Links direkt unterhalb des durch die id bezeichneten
* Elements zurück. Existiert die id nicht, gibt die Funktion null zurück.
* von [[Benutzer:Niabot]] - http://de.wikipedia.org/w/index.php?title=Benutzer_Diskussion:Niabot&diff=42524259&oldid=42521938
*/
function getLinkById(id)
{
var node = document.getElementById(id)
if (node)
{
return node.firstChild.href;
}
else
{
return null;
}
}
//<nowiki>
/* funktionen aufrufen */
addOnloadHook(ergaenzen);
addOnloadHook(entfernen);
addOnloadHook(toTop);
addOnloadHook(toFooter);
addOnloadHook(appendAddSectionLinkAtEnd);
/* Ergänzungen */
function ergaenzen()
{
/* Info über API-Status */
var firstHeading = document.getElementById("firstHeading");
if (firstHeading)
{
//API nicht verfügbar
if (!wgEnableAPI)
{
var span = document.createElement("span");
span.style.fontSize="75%";
span.style.color="red";
span.style.fontFamily="Courier New";
span.id="hinweis_enableAPI";
span.appendChild(document.createTextNode(" (API nicht verfügbar)"));
firstHeading.appendChild(span);
}
//writeAPI nicht verfügbar
if (!wgEnableWriteAPI)
{
var span = document.createElement("span");
span.style.fontSize="75%";
span.style.color="red";
span.style.fontFamily="Courier New";
span.appendChild(document.createTextNode(" (writeAPI nicht verfügbar)"));
firstHeading.appendChild(span);
}
//Suchfeld an erste Stelle (unter Logo)
var column = document.getElementById( 'column-one' );
if ( column ) {
//Feld entfernen
var searchbox = column.removeChild( document.getElementById( 'p-search' ) );
//und wieder einfügen
column.insertBefore( searchbox, document.getElementById( 'p-logo' ) );
}
}
/* Schutzstatus auswerten und Ampelfarben setzen
* funktioniert nicht bei kaskadierender Sperre (Bug 11700)
*/
if( typeof( wgRestrictionEdit ) != "undefined" && wgRestrictionEdit && wgRestrictionEdit.length > 0 ) {
for ( var i = 0; i < wgRestrictionEdit.length; i++ ) {
//gelb bei halbsperre
if (wgRestrictionEdit[i] == "autoconfirmed") {
appendCSS("#ca-edit a { background-color:#EEEE00 !important; }");
}
//rot bei vollsperre
else if (wgRestrictionEdit[i] == "sysop") {
//view source, da ich die Seite nicht bearbeiten kann
appendCSS("#ca-viewsource a { color:#FF6A6A !important; }");
}
}
}
if( typeof( wgRestrictionMove ) != "undefined" && wgRestrictionMove && wgRestrictionMove.length > 0 ) {
for ( var i = 0; i < wgRestrictionMove.length; i++ ) {
//gelb bei halbsperre
if (wgRestrictionMove[i] == "autoconfirmed") {
appendCSS("#ca-move a { background-color:#EEEE00 !important; }");
}
//rot bei vollsperre - Button wird eh nicht angezeigt
/* else if (wgRestrictionMove[i] == "sysop") {
appendCSS("#ca-move a { color:#FF6A6A !important; }");
}*/
}
}
// if( typeof( wgRestrictionUpload ) != "undefined" && wgRestrictionUpload && wgRestrictionUpload.length > 0 ) {
//nicht interessant für mich, da ich keine Dateien hochlade
//wüsste auch nicht, welches Element man markieren könnte
// }
if( typeof( wgRestrictionCreate ) != "undefined" && wgRestrictionCreate && wgRestrictionCreate.length > 0 ) {
for ( var i = 0; i < wgRestrictionCreate.length; i++ ) {
//gelb bei halbsperre
if (wgRestrictionCreate[i] == "autoconfirmed") {
appendCSS("#ca-edit a { background-color:#EEEE00 !important; }");
}
//rot bei vollsperre, aber Button wird eh nicht angezeigt
/* else if (wgRestrictionCreate[i] == "sysop") {
appendCSS("#ca-edit a { color:#FF6A6A !important; }");
}*/
}
}
//Cookie für die Anmeldezeit setzen
if ( wgCanonicalSpecialPageName == "Userlogin" ) {
//now
var date = new Date();
//expire time
var expires = new Date();
expires.setTime(date.getTime() + 30*24*60*60*1000);//+ 1 Monat
//cookie content
var logInTime = getLogInTime();
//is there a cookie content?
if ( logInTime ) {
//letzten Login anzeigen
var header = document.getElementById( 'firstHeading' );
if ( header ) {
header.appendChild( document.createTextNode( ' ' ) );
var span = document.createElement( 'span' );
span.style.color = 'gray';
span.style.fontSize = '75%';
span.style.whiteSpace = 'nowrap';
span.appendChild( document.createTextNode( 'letzte Anmeldung: ' + new Date( logInTime ).toLocaleString() + ' Uhr' ) );
header.appendChild( span );
}
//ersetzen
document.cookie = document.cookie.replace(
new RegExp( 'logintime=' + new Date(logInTime).toGMTString() ),
'logintime=' + date.toGMTString() + '; path=/;'
);
} else {
//neu setzen
document.cookie = 'logintime=' + date.toGMTString() + '; expires=' + expires.toGMTString() + '; path=/';
}
}
/* farbige Hervorbung beim fehlen der Zusammenfassungszeile, verschwindet dynamisch, falls etwas eingetragen wurde */
if ( wgNamespaceNumber == 0 /* ANR */
|| wgNamespaceNumber == 6 /* Datei: */
|| wgNamespaceNumber == 8 /* MediaWiki: */
|| wgNamespaceNumber == 10 /* Vorlage: */
|| wgNamespaceNumber == 12 /* Hilfe: */
|| wgNamespaceNumber == 14 /* Kategorie: */
) {
var wpSummary = document.getElementById( 'wpSummary' );
var wpSave = document.getElementById( 'wpSave' );
var wpTextbox1 = document.getElementById( 'wpTextbox1' );
if( wpSummary && wpSave ) {
var oldStyles = {
wpSaveTitle: wpSave.title,
wpSaveColor: wpSave.style.color,
wpSummaryTitle : wpSummary.title,
wpSummaryBackgroundColor : wpSummary.style.backgroundColor
};
var newStyles = {
wpSaveTitle: 'Bitte gebe in dem rot-hinterlegten Textfeld ein Bearbeitungskommentar ein.',
wpSaveColor: '#FF6A6A',
wpSummaryTitle : 'Bitte gebe hier ein Bearbeitungskommentar ein.',
wpSummaryBackgroundColor : '#FF6A6A'
};
var keyFunction = function () {
var wpSave = document.getElementById( 'wpSave' );
var wpSummary = document.getElementById( 'wpSummary' );
var wpTextbox1 = document.getElementById( 'wpTextbox1' );
if( wpSave && wpSummary ) {
var styles;
if( wpSummary.value.match( /^\s*(?:\/\*.*\*\/)?\s*$/ ) ) {
styles= newStyles;
} else {
styles= oldStyles;
}
if ( wpTextbox1 && wpTextbox1.value.match( /^\s*#(?:WEITERLEITUNG|REDIRECT)/i ) ) {
styles= oldStyles;
}
wpSave.title = styles.wpSaveTitle;
wpSave.style.color = styles.wpSaveColor;
wpSummary.title = styles.wpSummaryTitle;
wpSummary.style.backgroundColor = styles.wpSummaryBackgroundColor;
}
};
wpSummary.onkeydown = keyFunction;
wpSummary.onkeypress = keyFunction;
wpSummary.onkeyup = keyFunction;
wpSummary.onchange = keyFunction;
if( wpTextbox1 ) {
wpTextbox1.onkeydown = keyFunction;
wpTextbox1.onkeypress = keyFunction;
wpTextbox1.onkeyup = keyFunction;
}
keyFunction();
}
}
var userpage = document.getElementById( 'pt-userpage' );
if ( userpage ) {
//Zeitpunkt der Anmeldung anzeigen
var cookieDate = Date.parse( getLogInTime() );
if ( !isNaN( cookieDate ) ) {
var span = document.createElement( 'span' );
span.style.color = 'gray';
span.appendChild( document.createTextNode( 'angemeldet: ' + new Date( cookieDate ).toLocaleString() + ' Uhr ' ) );
userpage.parentNode.insertBefore( span, userpage );
}
/* wo bin ich? */
if ( typeof (wgDBname) != 'undefined' ) {
var span = document.createElement( 'span' );
span.style.color = 'gray';
span.appendChild( document.createTextNode( '[' + wgDBname + ']' ) );
userpage.parentNode.insertBefore( span, userpage );
}
}
/* integriert Links auf Unterseiten (eigene bei den persönlichen Links, relativ zur besuchten Seite bei der Werkzeugliste) */
/* Personal links - http://de.wikipedia.org/w/index.php?title=Wikipedia:Wikizine&oldid=40697727#Schon_gewusst.2C_dass... */
addPortletLink('p-personal','/wiki/Special:Prefixindex/User:Umherirrender/','Unterseiten','pt-links','Eigene Unterseiten','!', document.getElementById('pt-preferences'));
/* zeigt "Unterseiten" in der Werkzeugleiste, wie auf Commons */
if (wgNamespaceNumber != -2 // Media
&& wgNamespaceNumber != -1 // Spezial
&& wgNamespaceNumber != 0 // (Artikel-)
&& wgNamespaceNumber != 6 // Bild
&& wgNamespaceNumber != 14 // Kategorie
)
{
addPortletLink( 'p-tb', '/wiki/Special:Prefixindex/'+encodeURI(wgPageName)+'/', 'Unterseiten', 't-subpages', 'Liste der Unterseiten', 's', document.getElementById('t-upload') );
}
/* 'Logbücher Seite' */
if (wgNamespaceNumber != -2 // Media
&& wgNamespaceNumber != -1 // Spezial
)
{
addPortletLink( 'p-tb', wgScript+'?title=Special:Log&page='+encodeURI(wgPageName), 'Logbücher Seite', 't-pagelog', 'Logbücher Seite', 'l', document.getElementById('t-upload') );
}
/* zusätzlich 'Logbücher Commons' bei Bilder */
if (wgNamespaceNumber == 6 && !(typeof (wgDBname) != 'undefined' && wgDBname == "commonswiki")) // Bild
{
addPortletLink( 'p-tb', '//commons.wikimedia.org/w/index.php?title=Special:Log&page=File:'+encodeURI(wgPageName.slice(6)), 'Logbücher Commons', 't-pagelogcom', 'Logbücher Commons', 'c', document.getElementById('t-upload') );
addPortletLink("p-cactions",'//toolserver.org/~daniel/WikiSense/CheckUsage.php?i=' + wgTitle , "Nutzung", 'ca-check-usage');
}
/* SUL bei Benutzern */
var tContributions = document.getElementById( 't-contributions' );
if ( tContributions ) { // wenn 'Benutzerbeiträge' vorhanden ist
var user = encodeURIComponent( wgTitle );
addPortletLink(
'p-tb',
'//toolserver.org/~vvv/sulutil.php?user=' + user,
'SUL-Info',
't-sulinfo',
'SUL-Info',
's',
tContributions
);
addPortletLink(
'p-tb',
wgScriptPath + '/api.php?' +
'action=query&list=users&meta=globaluserinfo' +
'&usprop=groups|implicitgroups|editcount|registration|blockinfo&guiprop=groups|rights' +
'&ususers=' + user + '&guiuser=' + user,
'Benutzer-Info',
't-userinfo',
'Benutzer-Info',
'u',
tContributions
);
}
/* fügt ein '+' in meine persönliche Leiste, mitdem ein neuer Abschnitt auf meiner Diskussionsseite gestartet werden kann, nutze die Vorschaufunktion, für tests, um eine Arbeitsliste abzuarbeiten etc. */
addPortletLink('p-personal',wgScript+'?title=User_talk:Umherirrender&action=edit§ion=new','+','pt-addsection','Kommentar (eigene Diskussionsseite)','+', document.getElementById('pt-links'));
/* fügt ein '(de.wp)' in meine persönliche Leiste, damit ich einfach nach de.wp zurück komme */
if ( typeof (wgDBname) != 'undefined' && wgDBname != "dewiki" )
{
addPortletLink('p-personal','//de.wikipedia.org/wiki/Spezial:Beobachtungsliste','(de.wp)','pt-watchlist-home','zur eigenen Beobachtungsliste auf de.wp',null, document.getElementById('pt-watchlist'));
}
/* ergänzt purgen */
if (document.getElementById('ca-history'))
{
addPortletLink('p-cactions',getLinkById('ca-history').replace(/action=history/,'action=purge'),'purgen','ca-purge','purgen','p', document.getElementById('ca-history'));
}
/* templatetiger - in Anlehung an [[de:MediaWiki:Gadget-toolserver-integration.js]] */
if (wgNamespaceNumber == 10)
{
addPortletLink('p-cactions','//toolserver.org/~kolossos/templatetiger/tt-table4.php?lang=' + wgContentLanguage + '&template=' + encodeURIComponent(wgTitle) + '&offset=0&limit=30' , 'Templatetiger', 'ca-templatetiger');
}
/* CatScan */
if (wgNamespaceNumber == 14)
{
addPortletLink('p-cactions','//toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wiki=' + wgServer.replace('(?:https?:)?//', '') + '&basecat=' + encodeURIComponent(wgTitle) , 'CatScan', 'ca-catscan');
}
/* fügt den iso-code zu den Interwikis */
var plang = document.getElementById('p-lang');
if(plang)
{
var li = plang.getElementsByTagName("li");
for (var i = 0; i < li.length; i++)
{
var lang = li[i].className.substring(10);
//gleichlang machen
while (lang.length < 3)
{
lang += ' ';
}
//span für den text und auszeichnung
var span = document.createElement('span');
span.appendChild(document.createTextNode(lang+' '));
span.style.fontFamily="Courier New";
span.style.fontSize="75%";
span.style.verticalAlign="middle";
//an erster Stelle
li[i].insertBefore(span, li[i].firstChild);
}
}
/* nur dateien */
if (wgNamespaceNumber == 6)
{
/* setzt den software-hinweis bei Dateien sichtbar in den ersten head */
var dup = document.getElementById("mw-imagepage-section-duplicates");
var firstHeading = document.getElementById("firstHeading");
if (dup && firstHeading)
{
var span = document.createElement("span");
span.style.fontSize="50%";
span.id="hinweis-duplicat-file";
span.appendChild(document.createTextNode(" (Duplikat)"));
firstHeading.appendChild(span);
}
}
addSearchSuggestionToForms();
//auf inhalt beziehen
var contentElement = document.getElementById( 'bodyContent' );
if (contentElement) {
/* Permalink zur Überschrift */
/* Bearbeiten-Link für Abschnitte, falls nicht vorhanden (geschützte Seite oder alte Version) */
var header = contentElement.getElementsByTagName( 'h2' );
if( wgNamespaceNumber >= 0 && wgAction == 'view' && header && header.length > 0 ) {
var idOld = document.getElementById( 'mw-revision-info' ) != null;
var isViewsource = document.getElementById( 'ca-viewsource' ) != null;
var editlinkText = isViewsource ?
'Betrachten' :
'Bearbeiten';
var editlinkTitle = isViewsource ?
( idOld ? 'Alten Abschnitt betrachten' : 'Abschnitt betrachten' ) :
( idOld ? 'Alten Abschnitt bearbeiten' : 'Abschnitt bearbeiten' );
var editlinkHref = wgScript + '?title=' + wgPageName + '&action=edit§ion=';
var permalink = document.getElementById( 't-permalink' );
var addsection = document.getElementById( 'ca-addsection' );
var addPermalink = permalink && addsection;
var permalinkText = 'Permalink';
var permalinkTitle = 'Permalink zum Abschnitt';
var permalinkLink = addPermalink ? permalink.firstChild.href : '';
//setze einen Bearbeitenlink für den ersten Abschnitt
var editsectionFirst = document.createElement( 'span' );
editsectionFirst.className = 'editsection';
editsectionFirst.id = 'editsection-first';
editsectionFirst.appendChild( document.createTextNode( '[' ) );
var editsectionFirstLink = document.createElement( 'a' );
editsectionFirstLink.href = editlinkHref + '0';
editsectionFirstLink.title = isViewsource ?
( idOld ? 'Alten Abschnitt betrachten: Einleitung' : 'Abschnitt betrachten: Einleitung' ) :
( idOld ? 'Alten Abschnitt bearbeiten: Einleitung' : 'Abschnitt bearbeiten: Einleitung' );
editsectionFirstLink.appendChild( document.createTextNode( editlinkText ) );
editsectionFirst.appendChild( editsectionFirstLink );
editsectionFirst.appendChild( document.createTextNode( ']' ) );
firstHeading.insertBefore( editsectionFirst, firstHeading.firstChild );
//setze einen permalink für den Ersten Abschnitt
if ( permalink ) {
var a = document.createElement('a');
a.href = permalink.firstChild.href;
a.title = permalink.title;
a.appendChild( document.createTextNode( permalinkText ) );
editsectionFirst.insertBefore( a, editsectionFirst.firstChild.nextSibling );
editsectionFirst.insertBefore( document.createTextNode( '|' ), a.nextSibling );
}
var section = 0;
//Permalink in den header setzen
//Falls nicht vorhanden, auch einen Bearbeiten-Link
for (var i = 0; i < header.length; i++) {
var spans = header[i].getElementsByTagName( 'span' );
var editsection = null;
var headline = null;
for( var j = 0; j < spans.length; j++ ) {
if( spans[j].className == 'mw-headline' ) {
headline = spans[j];
if( editsection ) { //beide gefunden -> abbrechen
break;
}
} else if( spans[j].className == 'editsection' ) {
editsection = spans[j];
if( headline ) { //beide gefunden -> abbrechen
break;
}
}
}
// kein Header gefunden
if( !headline ) {
continue;
}
//Kein Bearbeitenlink vorhanden, also einen erzeugen
//FIXME die Nummerierung schert sich nicht um die Abschnittsstufen, daher passen nicht immer die Sectionnummer
if( !editsection ) {
editsection = document.createElement( 'span' );
editsection.className = 'editsection';
editsection.appendChild(document.createTextNode( '[' ) );
var editlink = document.createElement( 'a' );
editlink.appendChild( document.createTextNode( editlinkText ) );
editlink.href = editlinkHref + ++section;
editlink.title = editlinkTitle;
editsection.appendChild( editlink );
editsection.appendChild(document.createTextNode( ']' ) );
headline.insertBefore( editsection, headline.firstChild );
}
if( addPermalink ) {
//permalink erzeugen
var a = document.createElement( 'a' );
a.href = permalinkLink + '#' + headline.id;
a.title = permalinkTitle;
a.appendChild( document.createTextNode( permalinkText ) );
//link einsetzen
editsection.insertBefore( a, editsection.firstChild.nextSibling );
editsection.insertBefore( document.createTextNode( '|' ), a.nextSibling );
}
}
}
}
}
function entfernen()
{
/* eigene Methodik zum entfernen der centralnotice
* die Standardmäßige führt zu anzeigeproblemen im IE7, wenn man sich ausloggt
*/
removeCentralNotice( false );
var centralnotice = document.getElementById( 'centralNotice' );
if ( centralnotice )
{
var a = centralnotice.getElementsByTagName( 'a' );
for ( var i = 0; i < a.length; i++ )
{
if ( (a[i] && a[i].firstChild && a[i].firstChild.data == 'Ausblenden')
|| (a[i] && a[i].firstChild && a[i].firstChild.firstChild && a[i].firstChild.firstChild.data == 'Anzeigen' )
)
{
a[i].onclick = '';
a[i].href = 'javascript:removeCentralNotice( true )';
break;
}
}
}
var contentElement = document.getElementById("bodyContent");
/* entfernt unnötiges von Spezial:Beiträge */
if (wgCanonicalSpecialPageName == "Contributions")
{
var label = contentElement.getElementsByTagName("label");
for (var i = 0; i < label.length; i++)
{
//die "nur neue Benutzer"-Anzeige entfernen
if (label[i].htmlFor == "newbie")
{
label[i].parentNode.removeChild(label[i].previousSibling);
label[i].parentNode.removeChild(label[i].previousSibling);
label[i].parentNode.removeChild(label[i].nextSibling);
label[i].parentNode.removeChild(label[i]);
}
//Namen kürzen und RadioButton entfernen
if (label[i].htmlFor == "user")
{
label[i].parentNode.removeChild(label[i].previousSibling);
label[i].parentNode.removeChild(label[i].previousSibling);
//text umbenennen
label[i].firstChild.data = "Benutzername:";
break;
}
}
/* entfernt das Feld für den Markierungsfilter */
var fieldset = contentElement.getElementsByTagName("fieldset");
if( fieldset && fieldset[0] ) {
var p = fieldset[0].getElementsByTagName("p");
if ( p ) {
for( var i = 0; i < p.length; i++ ) {
if ( p[i]
&& p[i].childNodes[1]
&& p[i].childNodes[1].data
&& p[i].childNodes[1].data.substring(0,7) == '-Filter'
) {
fieldset[0].removeChild(p[i]);
break;
}
}
}
}
}
/* nur für Log */
else if (wgCanonicalSpecialPageName == "Log") {
/* entfernt das Feld für den Markierungsfilter */
var fieldset = contentElement.getElementsByTagName("fieldset");
if( fieldset && fieldset[0] ) {
var p = fieldset[0].getElementsByTagName("p");
if ( p ) {
for( var i = 0; i < p.length; i++ ) {
if ( p[i]
&& p[i].childNodes[1]
&& p[i].childNodes[1].data
&& p[i].childNodes[1].data.substring(0,7) == '-Filter'
) {
fieldset[0].removeChild(p[i]);
break;
}
}
}
}
}
/* nur für Spezial:Neue Seiten */
else if (wgCanonicalSpecialPageName == "Newpages") {
/* entfernt das Feld für den Markierungsfilter */
var table = document.getElementById( 'mw-newpages-table' );
var td = table.getElementsByTagName( 'td' );
for( var i = 0; i < td.length; i++ ) {
if( td[i] && td[i].className == 'mw-input' && td[i].firstChild && td[i].firstChild.name == 'tagfilter' ) {
td[i].parentNode.removeChild( td[i] );
td[i - 1].parentNode.removeChild( td[i - 1] );
break;
}
}
}
/* nur für Letzte Änderungen und verlinkte Letzte Änderungen */
else if (wgCanonicalSpecialPageName == "Recentchanges"
|| wgCanonicalSpecialPageName == "Recentchangeslinked") {
/* entfernt das Feld für den Markierungsfilter */
var table = contentElement.getElementsByTagName( 'table' );
for( var j = 0; j < table.length; j++ ) {
if( table[j] && table[j].className == 'mw-recentchanges-table' ) {
var td = table[j].getElementsByTagName( 'td' );
for( var i = 0; i < td.length; i++ ) {
if( td[i] && td[i].className == 'mw-input' && td[i].firstChild && td[i].firstChild.name == 'tagfilter' ) {
td[i].removeChild( td[i].firstChild );
td[i - 1].parentNode.removeChild( td[i - 1] );
break;
}
}
break;
}
}
}
/* nur in der Versionsgeschichte */
else if( wgAction == 'history' ) {
/* entfernt das Feld für den Markierungsfilter */
var fieldset = contentElement.getElementsByTagName( 'fieldset' );
if( fieldset && fieldset[0] ) {
var input = fieldset[0].getElementsByTagName( 'input' );
for( var i = 0; i < input.length; i++ ) {
if ( input[i]
&& input[i].name == 'tagfilter'
) {
fieldset[0].removeChild(input[i].previousSibling); //beschreibung teil 1
fieldset[0].removeChild(input[i].previousSibling); //beschreibung teil 2
fieldset[0].removeChild(input[i]); //input-tag
break;
}
}
}
}
//betreffzeile
var spanLabel = document.getElementById( "wpSummaryLabel" );
if (spanLabel)
{
//bei section=new ist ein geschütztes Leerzeichen welches hier entfernt wird,
//da das Label an sich ausgelendet wird und es sonst eingerückt aussieht
spanLabel.parentNode.removeChild(spanLabel.nextSibling);
}
}
/* erzeugt an jeder Überschrift einen Link zur vorherigen und einen Link nach oben
zusätzlich wird am Ende der Seite ein Link nach oben angezeigt */
function toTop()
{
var zeichen = "▲";
var address = "#globalWrapper";
var text = "An den Seitenanfang";
var texth = "Zur vorherigen Überschrift gleicher Stufe";
var contentElement = document.getElementById("bodyContent");
//link am Seitenanfang zum Ende
var link = document.createElement("a");
link.href=address;
link.title=text;
link.appendChild(document.createTextNode(zeichen));
var span = document.createElement("span");
span.style.fontSize="250%";
span.style.left="-35px";
span.style.bottom="20px";
span.style.position="absolute";
span.appendChild(link);
contentElement.appendChild(span);
//für jede Überschrift - MediaWiki:Gadget-Pfeil-hoch.js
for (var level = 2; level <= 6; level++)
{
var h = contentElement.getElementsByTagName("h" + level);
for (var i = 0; h && i < h.length; i++)
{
var abottom = document.createElement("a");
abottom.appendChild(document.createTextNode(zeichen));
abottom.href=address;
abottom.title=text;
h[i].appendChild(abottom);
//id vergeben, damit danach anspringen kann
var aid = document.createElement("a");
aid.id="h"+level+i;
h[i].appendChild(aid);
//prev - erzeuge Symbol für vorherige Überschrift
var aprev = document.createElement("a");
aprev.appendChild(document.createTextNode(zeichen));
//wenn am letzten, geht es mit footer weiter
if (i == 0)
aprev.href=address;
else
aprev.href="#h"+level+(i-1);
aprev.title=texth;
var aprevspan= document.createElement("span");
aprevspan.style.fontSize="60%";
aprevspan.style.left="-1em";
aprevspan.style.marginBottom="0.5em";
aprevspan.style.position="absolute";
aprevspan.appendChild(aprev);
h[i].insertBefore(aprevspan, h[i].firstChild);
}
}
//link am Seitenende zum TOC
if (document.getElementById("toc"))
{
var afirst = document.createElement("a");
afirst.href="#toc";
afirst.title="Inhaltsverzeichnis";
afirst.appendChild(document.createTextNode(zeichen));
var spanfirst = document.createElement("span");
spanfirst.style.fontSize="90%";
spanfirst.style.left="-1em";
spanfirst.style.bottom="20px";
spanfirst.style.position="absolute";
spanfirst.appendChild(afirst);
contentElement.appendChild(spanfirst);
}
}
/* erzeugt an jeder Überschrift einen Link zur nächsten und einen Link nach unten
zusätzlich wird am Beginn der Seite ein Link nach unten angezeigt sowie zum TOC*/
function toFooter()
{
var zeichen = "▼";
var address = "#footer";
var text = "An das Seitenende";
var texth = "Zur nächsten Überschrift gleicher Stufe";
var contentElement = document.getElementById("bodyContent");
//link am Seitenende zum Anfang
var link = document.createElement("a");
link.href=address;
link.title=text;
link.appendChild(document.createTextNode(zeichen));
var span = document.createElement("span");
span.style.fontSize="250%";
span.style.left="-35px";
span.style.top="20px";
span.style.position="absolute";
span.appendChild(link);
contentElement.appendChild(span);
//für jede Überschrift - MediaWiki:Gadget-Pfeil-hoch.js
for (var level = 2; level <= 6; level++)
{
var h = contentElement.getElementsByTagName("h" + level);
for (var i = 0; h && i < h.length; i++)
{
var atop = document.createElement("a");
atop.appendChild(document.createTextNode(zeichen));
atop.href=address;
atop.title=text;
h[i].appendChild(atop);
//id vergeben, damit danach anspringen kann
var aid = document.createElement("a");
aid.id="h"+level+i;
h[i].appendChild(aid);
//next - erzeuge Symbol für nächste Überschrift
var anext = document.createElement("a");
anext.appendChild(document.createTextNode(zeichen));
//wenn am letzten, geht es mit footer weiter
if (i == h.length-1)
anext.href=address;
else
anext.href="#h"+level+(i+1);
anext.title=texth;
var anextspan = document.createElement("span");
anextspan.style.fontSize="60%";
anextspan.style.left="-1em";
anextspan.style.marginTop="0.5em";
anextspan.style.position="absolute";
anextspan.appendChild(anext);
h[i].insertBefore(anextspan,h[i].firstChild);
}
}
//link am Seitenanfang zum TOC
if (document.getElementById("toc"))
{
var afirst = document.createElement("a");
afirst.href="#toc";
afirst.title="Inhaltsverzeichnis";
afirst.appendChild(document.createTextNode(zeichen));
var spanfirst = document.createElement("span");
spanfirst.style.fontSize="90%";
spanfirst.style.left="-1em";
spanfirst.style.top="20px";
spanfirst.style.position="absolute";
spanfirst.appendChild(afirst);
contentElement.appendChild(spanfirst);
}
}
/* erzeugt am Seitenende einen Link zum einfügen eines Neuen Abschnitts */
function appendAddSectionLinkAtEnd()
{
var address = getLinkById("ca-addsection");
//prüfe, ob es den Link gibt
if (address)
{
var zeichen = "+";
var text = "Einen neuen Abschnitt zu dieser Seite hinzufügen";
var contentElement = document.getElementById("bodyContent");
var link = document.createElement("a");
link.href=address;
link.title=text;
link.appendChild(document.createTextNode(zeichen));
var span = document.createElement("span");
span.style.fontSize="250%";
span.style.left="-50px";
span.style.bottom="20px";
span.style.position="absolute";
span.appendChild(link);
contentElement.appendChild(span);
}
}
// Skript von [[Benutzer:✓]], das protokollabsolute Links auf Wikimedia-Projekte in -relative ändert
// https://de.wikipedia.org/w/index.php?title=MediaWiki_Diskussion:Common.js&oldid=94938916#MediaWiki:Common.js.2Frelative.js
$(function makeProtocolsRelative() {
// zuverlässig mit beiden Protokollen verhaltensgleich funktionierende Domains
var reg = new RegExp("^https?\\:\\/\\/(?:" + [
// (?:download|.*?mobile|.*?m|mail) funktionieren nicht oder unterschiedlich
"(?!download|(?:[^.]+\\.)?mobile|(?:[^.]+\\.)?m|mail).*?\\.?wik(?:ipedia|tionary|ibooks|iquote|iversity|isource|inews|imediafoundation)",
// (?:dumps|downloads|stats|noc|ganglia|.*?planet|mail) funktionieren nicht oder unterschiedlich
// ticket und bugzilla leiten eh nur auf https weiter, donate auf http://wikimediafoundation.org
// das wäre nur lang und umständlich: "(?:lists|upload|techblog|blog|wikitech|svn|commons|incubator|.+?\\.labs|nyc|species|advisory|ar|bd|br|co|dk|et|fi|il|mk|mx|nl|no|nc|pa\\.us|pl|pt|rs|ru|se|tr|ua|uk|ve|board|boardgovcom|noboard\\.chapters|auditcom|chair|chapcom|checkuser|steward|collab|exec|grants|internal|movementroles|office|searchcom|spcom|otrs-wiki|quality|meta|outreach|volunteer|strategy|usability|survey|wikimania.*?)\\.wikimedia",
"(?!secure|dumps|downloads|stats|noc|ganglia|(?:[^.]+\\.)?planet|mail|ticket|bugzilla|donate).*?\\.?wikimedia",
"www\\.mediawiki",
// wiki.toolserver leitet eh nur auf https weiter
"toolserver",
].join("|") + ")\\.org");
mw.util.$content.find("a").each( function(index, link) {
var href = link.getAttribute('href');
if (!href || href.substring(0, 4) != "http") {
return;
}
if (href.search(reg) == 0) {
link.setAttribute('href', href.substr(href.substr(4,1)=="s" ? 6 : 5));
return;
}
var parts = href.match(/^https\:\/\/secure\.wikimedia\.org\/(.+?)\/(.+?)\/(.*)/);
if (!parts || parts.length<3) {
return;
}
var projekt = parts[1],
version = parts[2];
if (projekt != "wikipedia") {
if (projekt.substring(0, 6) == "skins-") // funktioniert eh nicht mehr, die "Korrektur" aber ist tödlich
return;
href = "//"+version+"."+projekt+".org";
} else {
switch (version) {
case "foundation": href = "//wikimediafoundation.org"; break;
case "sources": href = "//wikisource.org"; break;
case "mediawiki": href = "//www.mediawiki.org"; break;
case "species":
case "meta":
case "commons":
case "incubator": projekt = "wikimedia"; //no break
default: href = "//"+version+"."+projekt+".org";
}
}
link.setAttribute('href', href+"/"+parts[3]);
});
});
/* liest das Cookie für die Loginzeit aus */
function getLogInTime()
{
var cookieName = 'logintime=';
var cookiePos = document.cookie.indexOf( cookieName );
if (cookiePos > -1)
{
cookiePos = cookiePos + cookieName.length;
var endPos = document.cookie.indexOf(";", cookiePos);
if (endPos > -1)
{
return document.cookie.substring(cookiePos, endPos);
}
else
{
return document.cookie.substring(cookiePos);
}
}
return null;
}
/* helperfunction für das verbergen von CentralNotice, da es bei IE nach dem Abmelden eine graue Box gibt */
function removeCentralNotice( setCookie )
{
//eigenes Cookie setzen
if ( setCookie )
{
var e = new Date();
e.setTime( e.getTime() + (7*24*60*60*1000) ); // one week
var work = 'hidecentralnotice=true; expires=' + e.toGMTString() + '; path=/';
document.cookie = work;
}
if ( document.cookie.indexOf( 'hidecentralnotice=true' ) != -1 )
{
var centralNotice = document.getElementById( 'centralNotice' );
if( centralNotice ) {
centralNotice.parentNode.removeChild( centralNotice );
}
}
}
/**
* add search suggestion to other fields than the Searchbox in the sidebar
*/
function addSearchSuggestionToForms() {
if( wgCanonicalSpecialPageName == 'Export' ) {
//the form is missing a name
var catname = document.getElementById( 'catname' );
catname.parentNode.name = 'catname';
addSearchSuggestionToForm( 'catname', 14 );
}
}
function addSearchSuggestionToForm( name, namespace ) {
//Fake a hidden checkbox for the namespace, like Special:Search
var namespaceBox = document.createElement('input');
namespaceBox.type = 'hidden';
namespaceBox.value = '1';
namespaceBox.name = 'ns' + namespace;
//add the field to the form
document.forms[name].appendChild( namespaceBox );
os_autoload_inputs = [ name ];
os_autoload_forms = [ name ];
//call the init with the new form
os_MWSuggestInit();
}
//</nowiki> __NOINDEX__