MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus HomoWiki
Zur Navigation springen Zur Suche springen
(http://de.wikipedia.org/wiki/MediaWiki:Common.js)
(http://de.wikipedia.org/wiki/MediaWiki:Common.js)
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. */
//================================================================================
//*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]])
// Local Maintainer: [[Commons:User:Dschwen]]
function includePage(name) {
    document.write('<script type="text/javascript" src="' + wgScript + '?title='
        + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');    // smaxage=3600
}
//==============================================================================
//*** Fügt der Suche weitere Suchengines hinzu (kopiert aus eswp)
if (wgCanonicalSpecialPageName == "Search") {
    includePage("MediaWiki:SpezialSuche.js");
}
//================================================================================
//*** import Onlyifuploading-functions
// SEE ALSO [[MediaWiki:Onlyifuploading.js]]
if (wgCanonicalSpecialPageName == "Upload") {
    includePage("MediaWiki:Onlyifuploading.js");
    includePage("MediaWiki:Onlyifediting.js");
}


//================================================================================
//================================================================================
Zeile 11: Zeile 37:
//================================================================================
//================================================================================


//***********************************************************************
/** Skript für Vorlage:Galerie */
/** "Technical restrictions" title fix *****************************************
addOnloadHook(function() {
  *
   if (document.URL.match(/printable/g)) return;
   *  Description:
 
  *  Maintainers: [[:en:User:Interiot|User:Interiot]], [[:en:User:Mets501|User:Mets501]]
   function toggleImageFunction(group, remindex, shwindex) {
  *  adjusted to deWP by [[:de:User:CyRoXX|User:CyRoXX]]
    return function() {
  */
      document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none";
      document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block";
// For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
      return false;
// (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 -->
  var divs = document.getElementsByTagName("div");
//   <span id="RealTitle">title</span>
  var i = 0, j = 0;
// </div>
  var units, search;
// </nowiki>An element with id=DisableRealTitle disables the function.
  var currentimage;
  var disableRealTitle = 0; // users can disable this by making this true from their monobook.js
  var UnitNode;
editprefix = "Bearbeiten von ";
  for (i = 0; i < divs.length; i++) {
    if (divs[i].className !== "ImageGroup") { continue; }
addOnloadHook(function() {
    UnitNode = undefined;
try {
    search = divs[i].getElementsByTagName("div");
var realTitleBanner = document.getElementById("Vorlage_Korrekter_Titel");
    for (j = 0; j < search.length; j++) {
if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
      if (search[j].className !== "ImageGroupUnits") { continue; }
var realTitle = document.getElementById("Korrekter_Titel");
      UnitNode=search[j];
if (realTitle) {
      break;
var realTitleHTML = realTitle.innerHTML;
    }
realTitleText = pickUpText(realTitle);
    if (UnitNode === undefined) { continue; }
    units = [];
var isPasteable = 0;
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
//var containsHTML = /</.test(realTitleHTML); // contains ANY HTML
      var temp = UnitNode.childNodes[j];
var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
      if (temp.className === "center") { units.push(temp); }
// calculate whether the title is pasteable
    }
var verifyTitle = realTitleText.replace(/^ +/, ""); // trim left spaces
    var rightlink = undefined;
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
    var commentText = undefined;
    for (j = 0; j < units.length; j++) {
// if the namespace prefix is there, remove it on our verification copy.  If it isn't there, add it to the original realValue copy.
      currentimage = units[j];
if (wgNamespaceNumber != 0) {
      currentimage.id = "ImageGroupsGr" + i + "Im" + j;
if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
      var leftlink = document.createElement("a");
verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
      if (commentText !== undefined) {
} else {
        leftlink.setAttribute("title", commentText);
realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
      }
realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
      var comment;
}
      if (typeof(currentimage.getAttribute("title")) !== "string") {
}
        commentText = (j+1) + "/" + units.length;
        comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")"));
// verify whether wgTitle matches
      }
verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, ""); // trim left and right spaces
      else {
verifyTitle = verifyTitle.replace(/_/g, " "); // underscores to spaces
        commentText = currentimage.getAttribute("title");
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
        comment = document.createElement("span").appendChild(document.createTextNode(commentText));
isPasteable = (verifyTitle == wgTitle);
        currentimage.removeAttribute("title");
      }
// replace the English canonical Namespaces by the German Namespaces
      if(rightlink !== undefined) {
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");
        rightlink.setAttribute("title", commentText);
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");
      }
      var imghead = document.createElement("div");
for (var i = 0; i <= enNS.length - 1; i++) {
      rightlink = document.createElement("a");
    //alert(enNS[i] + "-" + deNS[i]);
      if (j != 0) {
    var NSregex = new RegExp("^" + enNS[i] + ":");
        leftlink.href = "#";
    realTitleText = realTitleText.replace(NSregex, deNS[i] + ":");
        leftlink.onclick = toggleImageFunction(i, j, j-1);
    realTitleHTML = realTitleHTML.replace(NSregex, deNS[i] + ":");
        leftlink.appendChild(document.createTextNode(""));
}
      }
      if (j != units.length - 1) {
// Add the 'editprefix' to the titles, if wgIsArticle is false
        rightlink.href = "#";
if (!wgIsArticle) {
        rightlink.onclick = toggleImageFunction(i, j, j+1);
    realTitleText = editprefix + realTitleText;
        rightlink.appendChild(document.createTextNode(""));
                                    realTitleHTML = editprefix + realTitleHTML;
      }
}
      imghead.style["fontSize"] = "110%";
      imghead.style["fontweight"] = "bold";
var h1 = document.getElementsByTagName("h1")[0];
      imghead.appendChild(leftlink);
if (h1 && isPasteable) {
      imghead.appendChild(document.createTextNode("\xA0"));
h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
      imghead.appendChild(comment);
if (!containsTooMuchHTML)
      imghead.appendChild(document.createTextNode("\xA0"));
realTitleBanner.style.display = "none";
      imghead.appendChild(rightlink);
}
      if (units.length > 1) {
document.title = realTitleText + " - Wikipedia";
        currentimage.insertBefore(imghead,currentimage.childNodes[0]);
}
      }
}
      if (j != 0) {
} catch (e) {
        currentimage.style["display"] = "none";
/* Something went wrong. */
      }
}
    }
});
  }
});
 
//==============================================================================
//*** Fügt eine Betreffzeile auf leeren Diskussionsseiten ein


addOnloadHook(function() {
        if(wgNamespaceNumber != 0 && wgNamespaceNumber != 1) return;
// similar to innerHTML, but only returns the text portions of the insides, excludes HTML
var tab = document.getElementById( 'ca-talk' );
function pickUpText(aParentElement) {
if( !tab || tab.className != 'new' ) return;
  var str = "";
var link = tab.getElementsByTagName( 'a' )[0];
if( !link ) return;
  function pickUpTextInternal(aElement) {
link.href += '&section=new';
    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 11. Januar 2010, 19:06 Uhr

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


//================================================================================
//*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]])
// Local Maintainer: [[Commons:User:Dschwen]]

function includePage(name) {
    document.write('<script type="text/javascript" src="' + wgScript + '?title='
        + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');    // smaxage=3600
}

//==============================================================================
//*** Fügt der Suche weitere Suchengines hinzu (kopiert aus eswp)

if (wgCanonicalSpecialPageName == "Search") {
    includePage("MediaWiki:SpezialSuche.js");
}

//================================================================================
//*** import Onlyifuploading-functions
// SEE ALSO [[MediaWiki:Onlyifuploading.js]]

if (wgCanonicalSpecialPageName == "Upload") {
    includePage("MediaWiki:Onlyifuploading.js");
    includePage("MediaWiki:Onlyifediting.js");
}

//================================================================================
//*** import Onlyifediting-functions
// SEE ALSO [[MediaWiki:Onlyifediting.js]]

if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) {
    includePage("MediaWiki:Onlyifediting.js");
}

//================================================================================

/** Skript für Vorlage:Galerie */
addOnloadHook(function() {
  if (document.URL.match(/printable/g)) return;

  function toggleImageFunction(group,  remindex, shwindex) {
    return function() {
      document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none";
      document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block";
      return false;
    };
  }

  var divs = document.getElementsByTagName("div");
  var i = 0, j = 0;
  var units, search;
  var currentimage;
  var UnitNode;
  for (i = 0; i < divs.length; i++) {
    if (divs[i].className !== "ImageGroup") { continue; }
    UnitNode = undefined;
    search = divs[i].getElementsByTagName("div");
    for (j = 0; j < search.length; j++) {
      if (search[j].className !== "ImageGroupUnits") { continue; }
      UnitNode=search[j];
      break;
    }
    if (UnitNode === undefined) { continue; }
    units = [];
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className === "center") { units.push(temp); }
    }
    var rightlink = undefined;
    var commentText = undefined;
    for (j = 0; j < units.length; j++) {
      currentimage = units[j];
      currentimage.id = "ImageGroupsGr" + i + "Im" + j;
      var leftlink = document.createElement("a");
      if (commentText !== undefined) {
        leftlink.setAttribute("title", commentText);
      }
      var comment;
      if (typeof(currentimage.getAttribute("title")) !== "string") {
        commentText = (j+1) + "/" + units.length;
        comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")"));
      }
      else {
        commentText = currentimage.getAttribute("title");
        comment = document.createElement("span").appendChild(document.createTextNode(commentText));
        currentimage.removeAttribute("title");
      }
      if(rightlink !== undefined) {
        rightlink.setAttribute("title", commentText);
      }
      var imghead = document.createElement("div");
      rightlink = document.createElement("a");
      if (j != 0) {
        leftlink.href = "#";
        leftlink.onclick = toggleImageFunction(i, j, j-1);
        leftlink.appendChild(document.createTextNode("◀"));
      }
      if (j != units.length - 1) {
        rightlink.href = "#";
        rightlink.onclick = toggleImageFunction(i, j, j+1);
        rightlink.appendChild(document.createTextNode("▶"));
      }
      imghead.style["fontSize"] = "110%";
      imghead.style["fontweight"] = "bold";
      imghead.appendChild(leftlink);
      imghead.appendChild(document.createTextNode("\xA0"));
      imghead.appendChild(comment);
      imghead.appendChild(document.createTextNode("\xA0"));
      imghead.appendChild(rightlink);
      if (units.length > 1) {
        currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      }
      if (j != 0) {
        currentimage.style["display"] = "none";
      }
    }
  }
});

//==============================================================================
//*** Fügt eine Betreffzeile auf leeren Diskussionsseiten ein

addOnloadHook(function() {
        if(wgNamespaceNumber != 0 && wgNamespaceNumber != 1) return;
	var tab = document.getElementById( 'ca-talk' );
	if( !tab || tab.className != 'new' ) return;
	var link = tab.getElementsByTagName( 'a' )[0];
	if( !link ) return;
	link.href += '&section=new';
});