MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus HomoWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */


//***********************************************************************
  /** "Technical restrictions" title fix *****************************************
  /** "Technical restrictions" title fix *****************************************
   *
   *
Zeile 9: Zeile 10:
   
   
  // For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
  // 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.  But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)
  // (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:  
  // The function looks for a banner like this: <nowiki>
  // <div id="RealTitleBanner">    <!-- div that gets hidden -->
  // <div id="RealTitleBanner">    <!-- div that gets hidden -->
  //  <span id="RealTitle">title</span>
  //  <span id="RealTitle">title</span>
  // </div>
  // </div>
  // An element with id=DisableRealTitle disables the function.
  // </nowiki>An element with id=DisableRealTitle disables the function.
  var disableRealTitle = 0;             // users can disable this by making this true from their monobook.js
  var disableRealTitle = 0; // users can disable this by making this true from their monobook.js
  editprefix = "Bearbeiten von ";
  editprefix = "Bearbeiten von ";
 
  addOnloadHook(function() {
  addOnloadHook(function() {
        try {
try {
                var realTitleBanner = document.getElementById("Vorlage_Korrekter_Titel");
var realTitleBanner = document.getElementById("Vorlage_Korrekter_Titel");
                if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
                        var realTitle = document.getElementById("Korrekter_Titel");
var realTitle = document.getElementById("Korrekter_Titel");
                        if (realTitle) {
if (realTitle) {
                                var realTitleHTML = realTitle.innerHTML;
var realTitleHTML = realTitle.innerHTML;
                                realTitleText = pickUpText(realTitle);
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
   
   
                                var isPasteable = 0;
// if the namespace prefix is there, remove it on our verification copy.  If it isn't there, add it to the original realValue copy.
                                //var containsHTML = /</.test(realTitleHTML);        // contains ANY HTML
if (wgNamespaceNumber != 0) {
                                var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
                                // calculate whether the title is pasteable
verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
                                var verifyTitle = realTitleText.replace(/^ +/, "");           // trim left spaces
} else {
                                verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);       // uppercase first character
realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
}
}
   
   
                                // if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy.
// verify whether wgTitle matches
                                if (wgNamespaceNumber != 0) {
verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, ""); // trim left and right spaces
                                        if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
verifyTitle = verifyTitle.replace(/_/g, " "); // underscores to spaces
                                                verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
                                        } else {
isPasteable = (verifyTitle == wgTitle);
                                                realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
                                                realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
// 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] + ":");
}
   
   
                                // verify whether wgTitle matches
// Add the 'editprefix' to the titles, if wgIsArticle is false
                                verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, "");            // trim left and right spaces
if (!wgIsArticle) {
                                verifyTitle = verifyTitle.replace(/_/g, " ");        // underscores to spaces
    realTitleText = editprefix + realTitleText;
                                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;
                                     realTitleHTML = editprefix + realTitleHTML;
                                }
}
                               
                                var h1 = document.getElementsByTagName("h1")[0];
var h1 = document.getElementsByTagName("h1")[0];
                                if (h1 && isPasteable) {
if (h1 && isPasteable) {
                                        h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
                                        if (!containsTooMuchHTML)
if (!containsTooMuchHTML)
                                                realTitleBanner.style.display = "none";
realTitleBanner.style.display = "none";
                                }
}
                                document.title = realTitleText + " - Wikipedia";
document.title = realTitleText + " - Wikipedia";
                        }
}
                }
}
        } catch (e) {
} catch (e) {
                /* Something went wrong. */
/* Something went wrong. */
        }
}
  });
  });


Zeile 91: Zeile 92:
     var child = aElement.firstChild;
     var child = aElement.firstChild;
     while (child) {
     while (child) {
       if (child.nodeType == 1)         // ELEMENT_NODE  
       if (child.nodeType == 1) // ELEMENT_NODE  
         pickUpTextInternal(child);
         pickUpTextInternal(child);
       else if (child.nodeType == 3)   // TEXT_NODE
       else if (child.nodeType == 3) // TEXT_NODE
         str += child.nodeValue;
         str += child.nodeValue;
   
   
Zeile 104: Zeile 105:
   return str;
   return str;
  }
  }
//********Ende erzwungener kleiner Anfangsbuchstabe********************

Version vom 14. April 2007, 21:56 Uhr

/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */

 //***********************************************************************
 /** "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********************