//
//Version: 3.1 //============================================================ // en: ADD SOME EXTRA BUTTONS TO THE EDITPANEL // de: FÜGE NEUE BUTTON IN DIE WERKZEUGLEISTE //============================================================ // Vorschläge für neue Buttons werden gerne entgegengenommen // Die Reihenfolge und Anzahl der Buttons ist über die (alphabetische) Variable XEBOrder wählbar. //================================ //Control Variables // //rmEditButtons - Removes standard toolbar buttons //XEBOrder='0,1,2,3,4,5,6,7,8,9,10,A,B,D,C,D1,F,TS,TR,TE,AI,Z,I1,I2,K,L,M,H,O,R,R4,T,V,FS,N,GEO'; - The order in which the buttons are displayed XEBOrder='9,0,1,2,AZZ,3,5,7,10,FS,L,J2,F,A,4,B,TC,Y2,Y1,8,T,H,O,P,D,C,D1,J1,I1,I2,S,U,K,W,X,M,N,E,G,V,ZA,R4C'; rmEditButtons=['all']; myButtons={'ZA':['http://upload.wikimedia.org/wikipedia/commons/9/99/Button_reflink_advanced_2.png','Nota','','','Reference material'], 'AZZ':['http://www.naturpedia.it/skins/common/images/button_link.png','[[|]]','[[|',']]','+'], 'R4C':['http://www.naturpedia.it/images/9/9a/Button_references.png','Note','\n==Note==\n','\n','']}; importStylesheetURI( 'http://en.wikipedia.org/w/index.php?title=User:MarkS/XEB/live.css&action=raw&ctype=text/css' ); if(typeof XEBPopups== 'undefined')XEBPopups=true; if(typeof XEBHideDelay== 'undefined')XEBHideDelay=0.5; //Time before the popup disappears after the mouse moves out if(typeof XEBExtendEditSummary == 'undefined')XEBExtendEditSummary=true; // Is the edit summary extended after a popup //fills the variable mwCustomEditButtons (s. function in /wikibits.js), with buttons for the Toolbar function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText){ mwCustomEditButtons.push({ "imageFile": imageFile, "speedTip": speedTip, "tagOpen": tagOpen, "tagClose": tagClose, "sampleText": sampleText}); } if (typeof usersignature == 'undefined') var usersignature = '-- \~\~\~\~'; var Isrc='//upload.wikimedia.org/wikipedia/commons/'; // English Wikipedia creates 11 extra buttons which are stored in mwCustomEditButtons // rather than mwEditButtons. However, there is no guarantee it will always be 11 // so we count them here. var enExtraButtons=mwCustomEditButtons.length; var BDict={ 'A':['e/e9/Button_headline2.png','Paragrafo di secondo livello','\n===','===','Secondary headline'], 'B':['1/13/Button_enter.png','Interruzione di linea','
','',''], 'C':['5/5f/Button_center.png','Centrato','\n','\n<\/div>','Centred text'], 'D':['e/ea/Button_align_left.png','Allineato a sinistra','\n','\n<\/div>','Left-aligned text'], 'D1':['a/a5/Button_align_right.png','Allineato a destra','\n','\n<\/div>','Right-aligned text'], 'E':['0/04/Button_array.png','Tabella','\n{| class="wikitable" \n|- \n| 1 || 2\n|- \n| 3 || 4','\n|}\n',''], 'F':['1/1e/Button_font_color.png','Inserisci testo colorato','Coloured text<\/span>','ColourName'], 'FS':['1/1b/Button_miss_signature.png','Post non firmato','{{subst:unsigned|','|date}}','user name or IP'], 'G':['9/9e/Btn_toolbar_gallery.png','Galleria immagini',"\n"; this.div.innerHTML=mt; //Turn off autocomplete. If the mouse moves over the autocomplete popup then x,y in CheckHidePopup is relative to the // autocomplete popup and our popup is hidden var InTexts = this.div.getElementsByTagName('input'); for (var i = 0; i < InTexts.length; i++) { var theInput = InTexts[i]; if (theInput.type == 'text'){theInput.setAttribute('autocomplete','off');} } //Add rollover features to menu items. Doing it here means we don't have to do it for each menu x=XEBgetElementsByClassName(this.div,'XEBMnuItm','span'); for (var i = 0; i < x.length; i++) { var theItm = x[i]; theItm.onmouseout=XEBMenuMouseOut; theItm.onmouseover=XEBMenuMouseOver; } this.div.style.borderWidth='thin'; this.div.style.borderStyle='solid'; this.div.style.backgroundColor='#D0D0D0'; } XEBPopup.prototype.width=250; XEBPopup.prototype.dragging=false; XEBPopup.prototype.setInnerHTML=setInnerHTML; var curPopup; function GetPos(e) { this.x=e.clientX-10+ document.documentElement.scrollLeft + document.body.scrollLeft; this.y=e.clientY-10+ document.documentElement.scrollTop + document.body.scrollTop; } function XEBPopupTable(e){ m=new GetPos(e||event); curPopup=new XEBPopup("table",m.x,m.y); mt='\nImage:","|[[M63]]\nImage:Mona Lisa.jpg|[[Mona Lisa]]\nImage:Truite arc-en-ciel.jpg|Eine [[Forelle ]]\n<\/gallery>",'M63.jpg'], 'H':['7/74/Button_comment.png','Commento',"",'Comment'], 'I1':['6/6a/Button_sup_letter.png','Soprascritto','','<\/sup>','Superscript text'], 'I2':['a/aa/Button_sub_letter.png','Subscritto','','<\/sub>','Subscript text'], 'J1':['5/58/Button_small.png','Testo piccolo','','<\/small>','Small Text'], 'J2':['5/56/Button_big.png','Testo grande','','<\/big>','Big text'], 'K':['b/b4/Button_category03.png','Category',"[[Category:","]]",'Category name'], 'L':['8/8e/Button_shifting.png','Insert tab(s)',':','',':'], 'M':['f/fd/Button_blockquote.png','Insert block of quoted text',' \n','\n<\/blockquote>','Block quote'], 'N':['4/4b/Button_nbsp.png','nonbreaking space',' ','',''], 'O':['2/23/Button_code.png','Insert code','','<\/code>','Code'], 'P':['3/3c/Button_pre.png','Pre formatted Text','
','<\/pre>','Pre formatted text'], 'P1':['9/93/Button_sub_link.png','Insert link to sub-page','[[','/Sub_Page]]','Page'], 'Q':['d/d3/Button_definition_list.png','Insert definition list','\n; ','\n: Item 1\n: Item 2','Definition'], 'R':['7/79/Button_reflink.png','Insert a reference','','<\/ref>','Insert reference material'], 'R1':['7/79/Button_reflink.png','Start a reference','','','Reference material'], 'R3':['1/1a/Button_reflink_advanced_3.png','No reference material','','"/>',''], 'R4':['9/9a/Button_references.png','Reference footer',"\n==Notes==\n\n\n",'',''], 'S':['c/c9/Button_strike.png','Strikeout','\n ','<\/s>','Struck out text'], 'T':['e/eb/Button_plantilla.png','Template','{{','}}','Template name'], 'TS':['a/a4/TableStart.png','Start a table','{|','',''], 'TC':['7/71/TableCell.png','Table cell','|','',''], 'TE':['0/06/TableEnd.png','End a table','','|}',''], 'TR':['4/4c/TableRow.png','Start a table row','|-','',''], 'T1':['3/30/Tt_icon.png','Teletype text','','<\/tt>','Teletype Text'], 'TL':['3/37/Button_tl_template.png','Template link',"{{subst:"+"tl|",'}}','Template name'], 'U':['f/fd/Button_underline.png','Underlined',"","<\/u>",'Underlined text'], 'V':['c/c8/Button_redirect.png','Redirect',"#REDIRECT [[","]]",'Article Name'], 'W':['8/88/Btn_toolbar_enum.png','Numbering',"\n# ","\n# Element 2\n# Element 3",'Element 1'], 'X':['1/11/Btn_toolbar_liste.png','List',"\n* ","\n* Element B\n* Element C",'Element A'], 'Y1':['c/ce/Button_no_include.png','No Include',"","<\/noinclude>",'Text'], 'Y2':['7/79/Button_include.png','Include only'," ","<\/includeonly>",'Text'], 'Z':['3/35/Button_substitute.png','Substitute',"{{subst:","}}",'Template'], 'AI':['1/1c/Button_advanced_image.png','Advanaced Image',"[[Image:","|thumb|right|px|Caption]]",'FileName.jpg'], 'GEO':['b/b8/Button_Globe.png','Geo location',"","",""], 'TALK':['4/49/Button_talk.png','Add talk template',"","",""] }; var XEBOrder2=[]; addOnloadHook(initButtons); if(!wgIsArticle)// only if edit { if(XEBPopups)hookEvent("load", extendButtons); } function initButtons(){ var bc,d; if (typeof XEBOrder!='string') // can be modified XEBOrder2="A,D,C,D1,F,U,J1,E,G,Q,W,X,K,L,H,O,R,T".split(","); else if (XEBOrder.toLowerCase()=='all') for (b in BDict) XEBOrder2.push(b); else XEBOrder2=XEBOrder.toUpperCase().split(","); 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]=[]; BDict[b]=[mwEditButtons[b].imageFile,mwEditButtons[b].speedTip,mwEditButtons[b].tagOpen,mwEditButtons[b].tagClose,mwEditButtons[b].sampleText]; // for (d in mwEditButtons[b]) BDict[b].push(mwEditButtons[b][d]); } // Build the new buttons for (i=0;i =0 && n =n) mwEditButtons[x] = mwEditButtons[x+1]; } mwEditButtons.pop(); } //Extra buttons in English Wikipedia n=n-mwEditButtons.length; if(n>0 && n =n) mwCustomEditButtons[x] = mwCustomEditButtons[x+1]; } mwCustomEditButtons.pop(); } } }; //Function: // sortit //Purpose: // Used to sort the rmEditButtons array into descending order function sortit(a,b){ return(b-a) } //Function: //Purpose: // Adds extended onclick-function to some buttons function extendButtons(){ if(!(allEditButtons = document.getElementById('toolbar'))) return false; if(typeof editform != 'undefined') if(!(window.editform = document.forms['editform'])) return false; // table extendAButton(Isrc+"0/04/Button_array.png",XEBPopupTable) extendAButton(Isrc+"7/79/Button_reflink.png",XEBPopupRef) extendAButton(Isrc+"b/b8/Button_Globe.png",XEBPopupGeoLink) extendAButton(Isrc+"4/49/Button_talk.png",XEBPopupTalk) extendAButton(Isrc+"1/1c/Button_advanced_image.png",XEBPopupImage) //extendAButton(Isrc+"6/6a/Button_sup_letter.png",XEBPopupFormattedText) // redirect -##IE doesn't like this line. Object doesn't support this property or method //c=XEBOrder2.getIndex('V'); // if(c != -1) // allEditButtons[bu_len+c].onclick=function(){ // var a='#REDIRECT \[\['+prompt("Which page do you want to redirect to\?")+'\]\]'; // document.editform.elements['wpTextbox1'].value=a; // document.editform.elements['wpSummary'].value=a; // document.editform.elements['wpWatchthis'].checked=false // }; }; function extendAButton(url,newfunc) { if(!(allEditButtons = document.getElementById('toolbar'))) return false; if(typeof editform != 'undefined') if(!(window.editform = document.forms['editform'])) return false; allEditButtons = allEditButtons.getElementsByTagName('img'); for(i=0;i (pl+2)&&x<(pl+pw-5)&&y>(pt+2)&&y<(pt+ph-5))return; curPopup.hideTimeout=setTimeout('hideXEBPopup()',XEBHideDelay*1000); } function cancelHidePopup() { clearTimeout(curPopup.hideTimeout) } function hideXEBPopup(){ XEBMainDiv= document.getElementById("XEB"); m= document.getElementById("XEBPopup"); XEBMainDiv.removeChild(m); } function XEBstartDrag(e) { m=new GetPos(e||event); curPopup.startDrag.mouse=m; curPopup.startDrag.floatpopup.y=parseInt(curPopup.div.style.top); curPopup.startDrag.floatpopup.x=parseInt(curPopup.div.style.left); curPopup.dragging=true; } function XEBstopDrag(e) { if(curPopup.dragging==false)return; curPopup.dragging=false; } function XEBDrag(e) { if(curPopup.dragging==false)return; m=new GetPos(e||event); x=parseInt(curPopup.startDrag.floatpopup.x+(m.x-curPopup.startDrag.mouse.x)); y=parseInt(curPopup.startDrag.floatpopup.y+(m.y-curPopup.startDrag.mouse.y)); curPopup.div.style.top=y+"px"; curPopup.div.style.left=x+"px"; curPopup.x=x; curPopup.y=y; } //============================================================================= // Popup: Table //============================================================================= function XEBPopup(name,x,y) { // Make sure the popup can appear on the screen this.IESelectedRange=XEBgetIESelectedRange(); winW=(is_gecko)?window.innerWidth:document.body.offsetWidth; if((winW-this.width) "; mt+=' Title' mt+=text; mt+="Enter the table parameters below: <\/p>' +'