„MediaWiki:Common.js“ – Versionsunterschied
Inhalt gelöscht Inhalt hinzugefügt
D (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
ermöglicht Kleinbuchstaben am Anfang des Artikelnamens, vgl. Vorlage_Diskussion:Korrekter_Titel#javascript-loesung und Wikipedia:Fragen_zur_Wikipedia#Kleinbuchstabe_am_Artikelanfang |
||
Zeile 36: | Zeile 36: | ||
// END Configuration for "star" logo at the top of Featured Articles */ |
// END Configuration for "star" logo at the top of Featured Articles */ |
||
// ============================================================ |
// ============================================================ |
||
//*********************************************************************** |
|||
/** "Technical restrictions" title fix ***************************************** |
|||
* |
|||
* Description: |
|||
* Maintainers: [[:en:User:Interiot|User:Interiot]], [[:en:User:Mets501|User:Mets501]] |
|||
* adjusted to deWP by [[:de:User:CyRoXX|User:CyRoXX]] |
|||
*/ |
|||
// For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink. |
|||
// (for instance [[iPod]]'s title is updated. <nowiki>But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)</nowiki> |
|||
// |
|||
// The function looks for a banner like this: <nowiki> |
|||
// <div id="RealTitleBanner"> <!-- div that gets hidden --> |
|||
// <span id="RealTitle">title</span> |
|||
// </div> |
|||
// </nowiki>An element with id=DisableRealTitle disables the function. |
|||
var disableRealTitle = 0; // users can disable this by making this true from their monobook.js |
|||
editprefix = "Bearbeiten von "; |
|||
addOnloadHook(function() { |
|||
try { |
|||
var realTitleBanner = document.getElementById("Vorlage_Korrekter_Titel"); |
|||
if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) { |
|||
var realTitle = document.getElementById("Korrekter_Titel"); |
|||
if (realTitle) { |
|||
var realTitleHTML = realTitle.innerHTML; |
|||
realTitleText = pickUpText(realTitle); |
|||
var isPasteable = 0; |
|||
//var containsHTML = /</.test(realTitleHTML); // contains ANY HTML |
|||
var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink |
|||
// calculate whether the title is pasteable |
|||
var verifyTitle = realTitleText.replace(/^ +/, ""); // trim left spaces |
|||
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character |
|||
// if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy. |
|||
if (wgNamespaceNumber != 0) { |
|||
if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") { |
|||
verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1); |
|||
} else { |
|||
realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText; |
|||
realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML; |
|||
} |
|||
} |
|||
// verify whether wgTitle matches |
|||
verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, ""); // trim left and right spaces |
|||
verifyTitle = verifyTitle.replace(/_/g, " "); // underscores to spaces |
|||
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character |
|||
isPasteable = (verifyTitle == wgTitle); |
|||
// replace the English canonical Namespaces by the German Namespaces |
|||
var enNS = new Array("Media", "Special", "Talk", "User", "User talk", "Project", "Project talk", "Image", "Image talk", "MediaWiki", "MediaWiki talk", "Template", "Template talk", "Help", "Help talk", "Category", "Category talk", "Portal", "Portal talk"); |
|||
var deNS = new Array("Media", "Spezial", "Diskussion", "Benutzer", "Benutzer Diskussion", "Wikipedia", "Wikipedia Diskussion", "Bild", "Bild Diskussion", "MediaWiki", "MediaWiki Diskussion", "Vorlage", "Vorlage Diskussion", "Hilfe", "Hilfe Diskussion", "Kategorie", "Kategorie Diskussion", "Portal", "Portal Diskussion"); |
|||
for (var i = 0; i <= enNS.length - 1; i++) { |
|||
//alert(enNS[i] + "-" + deNS[i]); |
|||
var NSregex = new RegExp("^" + enNS[i] + ":"); |
|||
realTitleText = realTitleText.replace(NSregex, deNS[i] + ":"); |
|||
realTitleHTML = realTitleHTML.replace(NSregex, deNS[i] + ":"); |
|||
} |
|||
// Add the 'editprefix' to the titles, if wgIsArticle is false |
|||
if (!wgIsArticle) { |
|||
realTitleText = editprefix + realTitleText; |
|||
realTitleHTML = editprefix + realTitleHTML; |
|||
} |
|||
var h1 = document.getElementsByTagName("h1")[0]; |
|||
if (h1 && isPasteable) { |
|||
h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML; |
|||
if (!containsTooMuchHTML) |
|||
realTitleBanner.style.display = "none"; |
|||
} |
|||
document.title = realTitleText + " - Wikipedia"; |
|||
} |
|||
} |
|||
} catch (e) { |
|||
/* Something went wrong. */ |
|||
} |
|||
}); |
|||
// similar to innerHTML, but only returns the text portions of the insides, excludes HTML |
|||
function pickUpText(aParentElement) { |
|||
var str = ""; |
|||
function pickUpTextInternal(aElement) { |
|||
var child = aElement.firstChild; |
|||
while (child) { |
|||
if (child.nodeType == 1) // ELEMENT_NODE |
|||
pickUpTextInternal(child); |
|||
else if (child.nodeType == 3) // TEXT_NODE |
|||
str += child.nodeValue; |
|||
child = child.nextSibling; |
|||
} |
|||
} |
|||
pickUpTextInternal(aParentElement); |
|||
return str; |
|||
} |
|||
//********Ende erzwungener kleiner Anfangsbuchstabe******************** |
Version vom 26. Januar 2007, 03:17 Uhr
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
// ============================================================
// BEGIN Configuration for "star" logo at the top of Featured Articles
/** set to false in [[Special:Mypage/monobook.js]] to switch off this "feature" */
var enable_linkFA = true;
/**
* star logo for featured articles in other languages,
* see [[:Template:Link_FA]] and [[MediaWiki:Common.css]]
*/
function linkFA() {
// early exit when diabled
if (!enable_linkFA) return;
// links are to replaced in p-lang only
var pLang = document.getElementById("p-lang");
if (!pLang) return;
var lis = pLang.getElementsByTagName("li");
for (var i=0; i<lis.length; i++) {
var li = lis[i];
// only links with a corresponding Link_FA template are interesting
if (!document.getElementById(li.className + "-fa")) continue;
// additional class so the template can be hidden with CSS
li.className += " FA";
// change title
li.title = "Dieser Artikel wurde als exzellent bewertet.";
}
}
// aOnloadFunctions[aOnloadFunctions.length] = linkFA;
addOnloadHook(linkFA);
// END Configuration for "star" logo at the top of Featured Articles */
// ============================================================
//***********************************************************************
/** "Technical restrictions" title fix *****************************************
*
* Description:
* Maintainers: [[:en:User:Interiot|User:Interiot]], [[:en:User:Mets501|User:Mets501]]
* adjusted to deWP by [[:de:User:CyRoXX|User:CyRoXX]]
*/
// For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
// (for instance [[iPod]]'s title is updated. <nowiki>But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)</nowiki>
//
// The function looks for a banner like this: <nowiki>
// <div id="RealTitleBanner"> <!-- div that gets hidden -->
// <span id="RealTitle">title</span>
// </div>
// </nowiki>An element with id=DisableRealTitle disables the function.
var disableRealTitle = 0; // users can disable this by making this true from their monobook.js
editprefix = "Bearbeiten von ";
addOnloadHook(function() {
try {
var realTitleBanner = document.getElementById("Vorlage_Korrekter_Titel");
if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
var realTitle = document.getElementById("Korrekter_Titel");
if (realTitle) {
var realTitleHTML = realTitle.innerHTML;
realTitleText = pickUpText(realTitle);
var isPasteable = 0;
//var containsHTML = /</.test(realTitleHTML); // contains ANY HTML
var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
// calculate whether the title is pasteable
var verifyTitle = realTitleText.replace(/^ +/, ""); // trim left spaces
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
// if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy.
if (wgNamespaceNumber != 0) {
if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
} else {
realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
}
}
// verify whether wgTitle matches
verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, ""); // trim left and right spaces
verifyTitle = verifyTitle.replace(/_/g, " "); // underscores to spaces
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
isPasteable = (verifyTitle == wgTitle);
// replace the English canonical Namespaces by the German Namespaces
var enNS = new Array("Media", "Special", "Talk", "User", "User talk", "Project", "Project talk", "Image", "Image talk", "MediaWiki", "MediaWiki talk", "Template", "Template talk", "Help", "Help talk", "Category", "Category talk", "Portal", "Portal talk");
var deNS = new Array("Media", "Spezial", "Diskussion", "Benutzer", "Benutzer Diskussion", "Wikipedia", "Wikipedia Diskussion", "Bild", "Bild Diskussion", "MediaWiki", "MediaWiki Diskussion", "Vorlage", "Vorlage Diskussion", "Hilfe", "Hilfe Diskussion", "Kategorie", "Kategorie Diskussion", "Portal", "Portal Diskussion");
for (var i = 0; i <= enNS.length - 1; i++) {
//alert(enNS[i] + "-" + deNS[i]);
var NSregex = new RegExp("^" + enNS[i] + ":");
realTitleText = realTitleText.replace(NSregex, deNS[i] + ":");
realTitleHTML = realTitleHTML.replace(NSregex, deNS[i] + ":");
}
// Add the 'editprefix' to the titles, if wgIsArticle is false
if (!wgIsArticle) {
realTitleText = editprefix + realTitleText;
realTitleHTML = editprefix + realTitleHTML;
}
var h1 = document.getElementsByTagName("h1")[0];
if (h1 && isPasteable) {
h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
if (!containsTooMuchHTML)
realTitleBanner.style.display = "none";
}
document.title = realTitleText + " - Wikipedia";
}
}
} catch (e) {
/* Something went wrong. */
}
});
// similar to innerHTML, but only returns the text portions of the insides, excludes HTML
function pickUpText(aParentElement) {
var str = "";
function pickUpTextInternal(aElement) {
var child = aElement.firstChild;
while (child) {
if (child.nodeType == 1) // ELEMENT_NODE
pickUpTextInternal(child);
else if (child.nodeType == 3) // TEXT_NODE
str += child.nodeValue;
child = child.nextSibling;
}
}
pickUpTextInternal(aParentElement);
return str;
}
//********Ende erzwungener kleiner Anfangsbuchstabe********************