MediaWiki:Common.js: Unterschied zwischen den Versionen

neu für 1.18.x
(-FS)
(neu für 1.18.x)
Zeile 3: Zeile 3:
// de: FÜGE NEUE BUTTON IN DIE WERKZEUGLEISTE [[:de:Benutzer:Olliminatore/Extra-Editbuttons]]
// de: FÜGE NEUE BUTTON IN DIE WERKZEUGLEISTE [[:de:Benutzer:Olliminatore/Extra-Editbuttons]]
//  Converted by [[User:Olliminatore]] 25.09.2006  
//  Converted by [[User:Olliminatore]] 25.09.2006  
//  Angepasst an RL und mw.toolbar von [[User:✓]] April 2011
//============================================================
//============================================================
// de: Die Reihenfolge und Anzahl der Buttons ist über die (alphabetische) Variable customEditButtons wählbar.
// de: Die Reihenfolge und Anzahl der Buttons ist über die (alphabetische) Variable customEditButtons wählbar.
//
//


var XEBOrder=[];
(function(){
var attributes = ["imageFile","speedTip","tagOpen","tagClose","sampleText"];
 
// isMSIE55
var editform = document.getElementById("editform");
var action = mw.config.get('wgAction');
 
if (action != "edit" && action != "submit" || ! editform)
  return;


//fills the variable mwCustomEditButtons (s. function in /wikibits.js), with buttons for the toolbar 
function addCustomButton(){
var a = {};
for (d in attributes) a[attributes[d]] = arguments[d];
mwCustomEditButtons.push(a);
};


if (typeof usersignature == 'undefined') var usersignature = '-- \~\~\~\~';
if (typeof usersignature == 'undefined')
  var usersignature = "--\~\~\~\~";


var Isrc='http://upload.wikimedia.org/wikipedia/commons/';
var Isrc = "//upload.wikimedia.org/wikipedia/commons/";
var BDict={
var BDict = {
'A':['e/e9/Button_headline2.png','Sekundäre Überschrift','\n=== ',' ===','Sekundäre Überschrift'],
'A':['e/e9/Button_headline2.png','Sekundäre Überschrift','\n=== ',' ===','Sekundäre Überschrift'],
'A3':['/3/3a/Button_headline3.png','Untergeordnete Überschrift','\n==== ',' ====','Untergeordnete Überschrift'],
'A3':['/3/3a/Button_headline3.png','Untergeordnete Überschrift','\n==== ',' ====','Untergeordnete Überschrift'],
'B':['1/13/Button_enter.png','Zeilenumbruch','<br />','',''],
'B':['1/13/Button_enter.png','Zeilenumbruch','<br />','',''],
'B1':['6/62/Button_desambig.png','Begriffsklärungseite','{{Begriffsklärung}}','',''],
'B1':['6/62/Button_desambig.png','Begriffsklärungseite','{{Begriffsklärung}}','',''],
'C':['5/5f/Button_center.png','Zentriert','<div style="text-align: center;">\n','\n<\/div>','Zentriert'],
'B2':['5/5e/Button_disambig_small.png','Dieser Artikel erläutert…','{{Dieser Artikel|','}}','erläutert den Buchstaben X, zu anderen Bedeutungen siehe [[X (Begriffsklärung)]].'],
'E':['0/04/Button_array.png','Tabelle','\n{| class="wikitable" \n|- \n| 1 || 2\n|- \n| 3 || 4','\n|}\n',''],
'B3':['5/5e/Button_disambig_small.png','Begriffsklärungshinweis','{{Begriffsklärungshinweis}}','',''],
'F':['8/8f/Button_poeme.png','Farbiger Text','<span style="color:#828282">','<\/span>','Farbig'],
'C':['5/5f/Button_center.png','Zentriert','<div style="text-align: center;">\n','\n<\/div>','Zentriert'],
'G':['9/9e/Btn_toolbar_gallery.png','Bildergalerie',"\n<gallery>\nDatei:Name.png|[[Name]]\nDatei:Name.jpg|[[Name|Alternativer Name]]\n<\/gallery>","",''],
'CF':['3/37/Btn_toolbar_commentaire.png','Chemische Formel',':<math>\u005Cmathrm{','}</math>',''],
'H':['7/74/Button_comment.png','Versteckter Kommentar',"<!--","//-->",'Versteckt'],
'CO':['6/6c/Button_commons.png','Commons','{{Commons|Category:','}}','Seitenname'],
'D':['e/ea/Button_align_left.png','Left-Align','<div style="text-align: left; direction: ltr; margin-left: 1em;">\n','\n<\/div>','Left-aligned Text'],
'DS':['4/4e/Button_romain.png','SORTIERUNG','{{SORTIERUNG:','}}','Sortierbegriff'],
'DO':['e/e9/Button_done.png','Erledigt (kurz)','{{Erl.}}','',''],
'ER':['9/9d/Button_fait.png','Erledigt (lang)','{{Erledigt|1=' + usersignature,'}}',''],
'E':['0/04/Button_array.png','Tabelle','','','','mw-editbutton-tablegenerator'],
'F':['8/8f/Button_poeme.png','Farbiger Text','<span style="color: color">','<\/span>','Farbig'],
'FS':['1/1b/Button_miss_signature.png','Fehlende Signatur','\{\{subst\:Unsigned|','}}','BENUTZER'],
'G':['9/9e/Btn_toolbar_gallery.png','Bildergalerie',"\n<gallery>\nDatei:M63.jpg|[[M63]]\nDatei:Mona Lisa.jpg|[[Mona Lisa]]\nDatei:Truite arc-en-ciel.jpg|Eine [[Forelle ]]\n<\/gallery>","",''],
'H':['7/74/Button_comment.png','Versteckter Kommentar',"<!--","-->",'Versteckt'],
'I':['4/41/Button_hr_halfwidth.png','Gedankenstrich','–','',''],
'I':['4/41/Button_hr_halfwidth.png','Gedankenstrich','–','',''],
'I1':['6/6a/Button_sup_letter.png','Hochgestellter Text (superscript)','<sup>','<\/sup>','Hochgestellt'],
'I1':['6/6a/Button_sup_letter.png','Hochgestellter Text (superscript)','<sup>','<\/sup>','Hochgestellt'],
'I2':['a/aa/Button_sub_letter.png','Tiefgestellter Text (subscript)','<sub>','<\/sub>','Tiefgestellt'],
'I2':['a/aa/Button_sub_letter.png','Tiefgestellter Text (subscript)','<sub>','<\/sub>','Tiefgestellt'],
'J1':['5/58/Button_small.png','Kleingeschriebener Text (small)','<small>','<\/small>','Klein'],
'J1':['5/58/Button_small.png','Kleingeschriebener Text (small)','<small>','<\/small>','Klein'],
'J2':['5/56/Button_big.png','Größerer Text (big)','<big>','<\/big>','Groß'],
'K':['b/b4/Button_category03.png','Kategorie',"[[Kategorie:","]]",'Name der Kategorie'],
'K':['b/b4/Button_category03.png','Kategorie',"[[Kategorie:","]]",'Name der Kategorie'],
'KR':['b/b1/Button_dagger.png','Kreuz','†','',''],
'KR':['b/b1/Button_dagger.png','Kreuz','†','',''],
'L':['8/8e/Button_shifting.png','Setze Tab(s)',':','',':'],
'M':['f/fd/Button_blockquote.png','Markiert ein Zitat mit Absatz','<blockquote style="border: 1px solid blue; padding: 2em;">\n','\n<\/blockquote>','Text'],
'M':['f/fd/Button_blockquote.png','Markiert ein Zitat mit Absatz','<blockquote style="border: 1px solid blue; padding: 2em;">\n','\n<\/blockquote>','Text'],
'N':['4/4b/Button_nbsp.png','Geschütztes Leerzeichen (nonbreaking space)','&nbsp;','',''],
'N':['4/4b/Button_nbsp.png','Geschütztes Leerzeichen (nonbreaking space)','&nbsp;','',''],
'NT':['b/bf/Button_thinsp.png','Schmales geschütztes Leerzeichen','&thinsp;','',''],
'O':['2/23/Button_code.png','Code einfügen','<code>','<\/code>','Code'],
'O':['2/23/Button_code.png','Code einfügen','<code>','<\/code>','Code'],
'P':['3/3c/Button_pre.png','Vorformatierter Text','<pre>','<\/pre>','Präformatierter Text'],
'P':['3/3c/Button_pre.png','Vorformatierter Text','<pre>','<\/pre>','Präformatierter Text'],
'P1':['9/93/Button_sub_link.png','Link zu einem Seiten-Abschnitt','[[Seite#',']]','Abschnitt'],
'PF':['f/ff/Button_arrow_right.png','Pfeil nach rechts','\u2192','',''],
'PF':['f/ff/Button_arrow_right.png','Pfeil nach rechts','\u2192','',''],
'PD':['e/ee/Button_vote_biblio.png','Personendaten','{{Personendaten\n|NAME=\n|ALTERNATIVNAMEN=','\n|KURZBESCHREIBUNG=\n|GEBURTSDATUM=\n|GEBURTSORT=\n|STERBEDATUM=\n|STERBEORT=\n}}',''],
'PO':['c/c7/Button_polytonique.png','Unicode-Sonderzeichen der altgriechischen Schrift','{{Polytonisch|','}}','Text'],
'Q':['d/d3/Button_definition_list.png','Definitionsliste','\n; ',' : ','Text'],
'Q1':['0/05/Button_Anf%C3%BChrung.png','Anführungszeichen',"„","“",'Text'],
'Q1':['0/05/Button_Anf%C3%BChrung.png','Anführungszeichen',"„","“",'Text'],
'Q2':['2/26/Button_latinas.png','Latinas',"«","»",'Text'],
'Q3':['b/bc/Button_guillemet.png','Guillemets',"»","«",'Text'],
'R':['7/79/Button_reflink.png','Markiere eine Referenz','<ref>','<\/ref>','Bezugsangabe'],
'R1':['c/c4/Button_ref.png','Referenz mit Name','<ref name="">','<\/ref>','Bezugsangabe'],
'R2':['f/fe/Button_refs.png','Wiederholungs-Referenz','<ref name="','"/>','Referenzname'],
'R3':['9/9a/Button_references.png','Referenz-Footer','\n== Einzelnachweise ==\n<references />\n','',''],
'RD':['7/70/Button_fusion.png','Redundanz','{{ers:Redundanz|','}}','Artikel1|Artikel2|Artikel3…'],
'S':['c/c9/Button_strike.png','Durchgestrichener Text',"<s>","<\/s>",'Durchgestrichen'],
'S':['c/c9/Button_strike.png','Durchgestrichener Text',"<s>","<\/s>",'Durchgestrichen'],
'SA':['b/bb/Seealso.png','Siehe auch','\n== Siehe auch ==\n','',''],
'SA':['b/bb/Seealso.png','Siehe auch','\n== Siehe auch ==\n','',''],
'SC':['0/02/Button_S_yellow.png','SourceCode hervorheben','<source lang="javascript">',"<\/source>",'Quelltext'],
'SM':['7/74/Button_oeil.png','Smiley','<tt style="background:#FE3">','</tt>',':D'],
'ST':['7/72/Button_span_2.png','span-tag mit CSS-Angabe','<span style="">','<\/span>','Markierter Inhalt'],
'T':['e/eb/Button_plantilla.png','Vorlage','{{','}}','Vorlagenname'],
'T':['e/eb/Button_plantilla.png','Vorlage','{{','}}','Vorlagenname'],
'TL':['e/eb/Button_templatelink.png','Vorlagenlink','{{[[Vorlage:','|]]}}','Vorlagenname'],
'TT':['3/30/Tt_icon.png','Schreibmaschinenstil','<tt>','<\/tt>','Teletyper Text'],
'U':['f/fd/Button_underline.png','Unterstreichen',"<u>","<\/u>",'Unterstrichener Text'],
'U':['f/fd/Button_underline.png','Unterstreichen',"<u>","<\/u>",'Unterstrichener Text'],
'V':['c/c8/Button_redirect.png','Weiterleitung (Redirect)',"#WEITERLEITUNG [[","]]",'Ziel einfügen'],
'UR':['e/ec/Button_aviso.png','Urheberrecht ungeklärt',"{{Urheberrecht ungeklärt}}","",''],
'URV':['9/9d/Button_halt.png','Urheberrechtsverletzung',"{{URV}} [","] " + usersignature,'Url'],
'V':['c/c8/Button_redirect.png','Weiterleitung (Redirect)',"#WEITERLEITUNG [[","]]",'Ziel einfügen', 'mw-editbutton-redirect'],
'VP':['b/ba/Button_conserver.png','Vote *pro*',"# {{pro}} " + usersignature,"",''],
'VC':['f/fc/Button_supp.png','Vote *contra*',"# {{contra}} " + usersignature,"",''],
'VN':['4/4e/Button_neutre.png','Vote *neutral*',"# {{neutral}} " + usersignature,"",''],
'WB':['6/61/Button_wikibooks.png','Wikibooks',"{{Wikibooks","}}",'|Seitenname'],
'WS':['e/eb/Button_wikisource.png','Wikisource',"{{Wikisource","}}",'|Seitenname'],
'WT':['b/bf/WP-icon.png','Wiktionary',"{{Wiktionary","}}",'|Seitenname'],
'WV':['b/b5/Button_wikiversity.png','Wikiversity',"{{Wikiversity","}}",'|Seitenname'],
'W':['8/88/Btn_toolbar_enum.png','Nummerierung',"\n# Element 1\n# Element 2\n# Element 3","",''],
'W':['8/88/Btn_toolbar_enum.png','Nummerierung',"\n# Element 1\n# Element 2\n# Element 3","",''],
'X':['1/11/Btn_toolbar_liste.png','Liste',"\n* Element A\n* Element B\n* Element C","",''],
'X':['1/11/Btn_toolbar_liste.png','Liste',"\n* Element A\n* Element B\n* Element C","",''],
'Y1':['c/ce/Button_no_include.png','No Include',"<noinclude>","<\/noinclude>",'Text'],
'Y1':['c/ce/Button_no_include.png','No Include',"<noinclude>","<\/noinclude>",'Text'],
'Y2':['7/79/Button_include.png','Include only',"<includeonly>","<\/includeonly>",'Text'],
'Y2':['7/79/Button_include.png','Include only',"<includeonly>","<\/includeonly>",'Text'],
'Z':['3/35/Button_substitute.png','Ersetzen',"{{ers:","}}",'Vorlage'],
'ZI':['8/83/Button_biocitas.png','Zitat',"{{Zitat|","}}",'Text|Autor (optional)|Quelle (optional)'],
'T1':['c/c6/Blending_blue_button_background.png','Spacer (no function)','','','']
};
};
for (var b in BDict)
  BDict[b][0] = Isrc + BDict[b][0]; // Add the start of the URL (Isrc) to the buttons


var normal = mw.toolbar.buttons.splice(0); // Leeren


function initButtons(){
$(document).ready(function(){
  var bc,d;
  var t = mw.toolbar;
    if (typeof customEditButtons!='string') // can be modified
  t.buttons = normalButtons();
XEBOrder="A,A3,B,B1,C,E,F,FS,G,H,I,I1,I2,J1,K,KR,M,N,O,P,PF,Q1,S,SA,T,U,V,W,X,Y1,Y2".split(",");
  extendNormalArray();
    else if (customEditButtons.toLowerCase()=='all')  
  addNewButtons(); // oder über das hergebrachte mwCustomEditButtons
for (b in BDict) XEBOrder.push(b);
  if (typeof mwCustomEditButtons == 'object' && ! $.isEmptyObject(mwCustomEditButtons) ) {
    else XEBOrder=customEditButtons.split(",");
      mw.toolbar.$toolbar.empty();
  }
  t.init(); // Ja keinen Aufwand betreiben
  extendButtons();
});
// Returns the normal buttons for use
function normalButtons() {
  if (typeof rmEditButtons != 'object' || ! $.isArray(rmEditButtons))
      return normal;
  if (typeof rmEditButtons[0] == 'string' && rmEditButtons[0].toLowerCase() == "all")
      return [];
  //Remove the buttons the user doesn't want
  var ret = [];
  for (var i=0, l=normal.length; i<l; i++) {
      if ($.inArray(i, rmEditButtons) == -1) {
        ret.push(normal[i]);
      }
  }
  return ret;
};
// Adds the custom buttons to mw.toolbar.buttons
function addNewButtons() {
  var order = [], b;
  if (typeof customEditButtons != 'string') {// can be modified
      order = "A,A3,B,E,F,G,H,I1,I2,J1,K,M,Q,R,R1,R2,R3,S,T,U,V,W,X".split(",");
  } else if (customEditButtons.toLowerCase() == "all") {
      for (b in BDict) {
        order.push(b);
      }
  } else {
      order = customEditButtons.split(",");
  }
  $.extend(BDict, normal); // Standardbuttons auswählbar
  if (typeof myButtons == 'object') {
      $.extend(BDict, myButtons);
  }
  for (var i=0, l=order.length; i<l; i++) {
      mw.toolbar.addButton.apply( mw.toolbar, BDict[order[i]] ); // muss ein Array sein !!!
  }
}
// Changes some attributes
function extendNormalArray() {
  var extend = {}, j;
  if (typeof usersignature == 'string' && usersignature != "--~~~~")
      extend["mw-editbutton-signature"] = function(b) {
        b[0] = Isrc + 'd/d1/Button_mysignature.png'; // imageFile
        b[2] = usersignature; // tagOpen
      };
 
  if ($.isEmptyObject(extend))
      return false;
  for (var i=0, l=normal.length; i<l; i++) {
      if (extend[j = normal[i][5]]) { // imageId
        extend[j](normal[i]);
      }
  }
  return true;
}
// Adds extended onclick-function to some buttons
function extendButtons() {
  var extend = {};
  extend[BDict['V'][5]] = function() {
      var a;
      if (a = window.prompt("Wohin soll der Redirect\?", "")) {
        a = '\#WEITERLEITUNG \[\[' + a + '\]\]';
        $("#wpTextbox1").val( a );
        $("#wpSummary").val( a ); // not more needed?
        $("#wpWatchthis").val( false );
      }
  };
  extend[BDict['E'][5]] = popupTable;
 
  for (var i in extend) {
      mw.toolbar.$toolbar.children("#"+i).click(extend[i]);
  }
  mw.toolbar.$toolbar.children( 'img[src="' + BDict['T1'][0] + '"]' ).width( 6 ); // Spacer
};


for (b in BDict) BDict[b][0] = Isrc+BDict[b][0]; // // Add the start of the URL (Isrc) to the XEB buttons
// If the user has defined any buttons then add them into the available button lists
if (typeof myButtons=='object')
  for (b in myButtons) BDict[b] = myButtons[b]; // custom user buttons
  // Add the media wiki standard buttons into the available buttons
for (b in mwEditButtons) { // add standard buttons for full XEB order changing
BDict[b]=[];
// for (d in mwEditButtons[b])
for (d in attributes) BDict[b].push(mwEditButtons[b][attributes[d]]);
}
// Build the new buttons
for (i=0;i<XEBOrder.length;i++) {
bc = BDict[XEBOrder[i]];
//try { // catch not existing button names
addCustomButton(bc[0],bc[1],bc[2],bc[3],bc[4]);
//}
// catch(e) {continue}
}
// Remove the default buttons (if requested by the user)
eraseButtons();
};


//============================================================
//============================================================
Zeile 92: Zeile 189:
* @author: originally from fr:user:dake
* @author: originally from fr:user:dake
* @version: 0.2 */
* @version: 0.2 */
function generateTable(caption, exhead, nbCol, nbRow, exfield, align){
mw.toolbar.generateTable = function(caption, exhead, nbCol, nbRow, exfield, align){
var code = "\n";
var code = "\n";
code += '{| class="wikitable" ' + align + '\n'
code += '{| class="wikitable" ' + align + '\n'
Zeile 107: Zeile 204:
}
}
code += '|}\n';
code += '|}\n';
insertTags('','', code);
mw.toolbar.insertTags('','', code);
editform.elements['wpSummary'].value+=' table+';
editform.elements['wpSummary'].value+=' table+';
return false
return false
Zeile 126: Zeile 223:
   +'var exfield = document.paramForm.inputItems.checked; '
   +'var exfield = document.paramForm.inputItems.checked; '
   +'var align = (document.paramForm.inputAlign.checked)?\'align="center"\':""; '
   +'var align = (document.paramForm.inputAlign.checked)?\'align="center"\':""; '
   +'window.opener.generateTable(caption,exhead,col,row,exfield,align); '
   +'window.opener.mw.toolbar.generateTable(caption,exhead,col,row,exfield,align); '
   +'window.close()}<\/script>';
   +'window.close()}<\/script>';
    
    
Zeile 152: Zeile 249:
};
};


 
})();
/** en: Removes arbitrary standard buttons from the toolbar
* @author: [[:de:User:Olliminatore]]
* @version: 0.2 (01.10.2006) **/
function eraseButtons(){
if(typeof rmEditButtons!='object') return;
if (typeof rmEditButtons[0] == 'string' && rmEditButtons[0].toLowerCase() == 'all')
return mwEditButtons=[];
//Remove the buttons the user doesn't want
for(i=0;i<rmEditButtons.length;i++){
var n=rmEditButtons[i]-i;
if(n>=0 && n<mwEditButtons.length){
if(n<mwEditButtons.length){
var x = -1;
while((++x)<mwEditButtons.length)
if(x>=n)
mwEditButtons[x] = mwEditButtons[x+1];
}
mwEditButtons.pop();
}
}
};
 
// Adds extended onclick-function to some buttons
function extendButtons(){
if(!(allEditButtons = document.getElementById('toolbar'))) return false;
if(typeof editform == 'undefined')
if(!(window.editform = document.editform)) return false;
 
XEBOrder.getIndex = function (item){
if(is_gecko) return this.indexOf(item);
else //is IE (Opera < 9)
for (var i=0;i < this.length;i++) if (this[i]==item) return Number(i);
  return -1
}
var searchbox = allEditButtons.getElementsByTagName('span')[0];
if (searchbox) allEditButtons.appendChild(searchbox) // pay Zocky/Search Box
allEditButtons = allEditButtons.getElementsByTagName('img');
 
var bu_len = mwEditButtons.length;
var c=0;
 
if(!allEditButtons.length) return false;
 
// own signature
if (bu_len>0){
if(typeof rmEditButtons=='object' && rmEditButtons.pop()==10) c=1;
mwEditButtons[bu_len-2+c].tagOpen=usersignature;
if(usersignature != '-- \~\~\~\~')
allEditButtons[bu_len-2+c].src=Isrc+'d/d1/Button_mysignature.png';
}
 
//  table
if((c=XEBOrder.getIndex('E')) != -1) allEditButtons[bu_len+c].onclick=popupTable;
 
// redirect
c=XEBOrder.getIndex('V');
if(c != -1)
allEditButtons[bu_len+c].onclick=function(){
if (a = window.prompt("Wohin soll der Redirect\?", "")) {
a = '\#WEITERLEITUNG \[\[' + a + '\]\]';
editform.wpTextbox1.value=a;
editform.wpSummary.value=a; // not more needed?
editform.wpWatchthis.checked=false
}
  };
// spacer width
if((c = XEBOrder.getIndex('T1')) != -1) allEditButtons[bu_len+c].width = 6;
};
 
if ((wgAction=="edit") || (wgAction=="submit"))
        addOnloadHook(initButtons);
 
if(!wgIsArticle) // only if edit
hookEvent("load", extendButtons);