Différences entre les versions de « Utilisateur:Jluc/monobook.js »
De Entre Amis
Ligne 1 : | Ligne 1 : | ||
− | addOnloadHook(function() { | + | /**** |
− | + | *Mode édition | |
− | }); | + | *****/ |
− | + | ||
− | addOnloadHook(function() { | + | if(wgAction=='edit' || wgAction=='submit') { |
− | + | ||
− | + | ||
− | + | /* | |
− | " | + | *Boutons Qualité |
− | + | *Auteur: ThomasV | |
+ | */ | ||
+ | |||
+ | |||
+ | function addQuality(form,value){ | ||
+ | |||
+ | var text=""; | ||
+ | switch(value){ | ||
+ | case "25%": text = "Texte incomplet"; break; | ||
+ | case "50%": text = "Texte non formaté"; break; | ||
+ | case "75%": text = "Complet et formaté"; break; | ||
+ | case "100%": text = "Relu et corrigé"; break; | ||
+ | case "Textes validés": text = "Validé"; break; | ||
+ | case "mode_page|": text = "Texte en mode page"; break; | ||
+ | } | ||
+ | |||
+ | form.elements["wpSummary"].value="/* "+text+" */"; | ||
+ | s = form.elements["wpTextbox1"].value; | ||
+ | s = s.replace(/\{\{TextQuality\|(.*?)\}\}/gi,"") | ||
+ | form.elements["wpTextbox1"].value="{"+"{TextQuality|"+value+"}"+"}"+s; | ||
+ | } | ||
+ | |||
+ | |||
+ | function addQualityButtons(){ | ||
+ | if( wgNamespaceNumber != 0 ) return; | ||
+ | var ig = document.getElementById("wpWatchthis"); | ||
+ | if(!ig) return; | ||
+ | |||
+ | var f = document.createElement("span"); | ||
+ | f.innerHTML = | ||
+ | ' <input type="radio" name="quality" value="25%" onclick="addQuality(this.form,this.value)"><img src = "'+q25+'">' | ||
+ | +'<input type="radio" name="quality" value="50%" onclick="addQuality(this.form,this.value)"><img src = "'+q50+'">' | ||
+ | +'<input type="radio" name="quality" value="75%" onclick="addQuality(this.form,this.value)"><img src = "'+q75+'">' | ||
+ | +'<input type="radio" name="quality" value="100%" onclick="addQuality(this.form,this.value)"><img src = "'+q100+'">' | ||
+ | +'<input type="radio" name="quality" value="Textes validés" onclick="addQuality(this.form,this.value)"><img src = "'+qvalid+'">' | ||
+ | //+'<input type="radio" name="quality" value="mode_page|" onclick="addQuality(this.form,this.value)"><img src = "http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Open_book_nae_02.svg/20px-Open_book_nae_02.svg.png">' | ||
+ | +' Niveau d\’avancement du texte'; | ||
+ | ig.parentNode.insertBefore(f,ig.nextSibling.nextSibling.nextSibling) | ||
+ | } | ||
+ | |||
+ | addOnloadHook(addQualityButtons); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | /*** | ||
+ | *Expressions régulières | ||
+ | *Auteur: ThomasV, Pathoschild | ||
+ | *Note : cet outil utilise la syntaxe javascript : on utilise $ (et pas \) pour appeler un groupe dans la chaîne de remplacement. | ||
+ | *Tutoriel : http://www.regular-expressions.info/tutorial.html | ||
+ | ****/ | ||
+ | |||
+ | /* create form */ | ||
+ | function custom() { | ||
+ | |||
+ | /* if already open */ | ||
+ | if(document.getElementById('regexform')) customremove() | ||
+ | else { | ||
+ | var editbox = document.getElementById('wpTextbox1'); | ||
+ | /* container */ | ||
+ | var regexform = document.createElement('div'); | ||
+ | regexform.setAttribute('id','regexform'); | ||
+ | editbox.parentNode.insertBefore(regexform,editbox.parentNode.firstChild); | ||
+ | |||
+ | /* form tag */ | ||
+ | var formform = document.createElement('form'); | ||
+ | formform.setAttribute('id','regexformform'); | ||
+ | formform.setAttribute('onSubmit','customgo(); return false;'); | ||
+ | regexform.appendChild(formform); | ||
+ | |||
+ | // add input boxes | ||
+ | var newinput = document.createElement('input'); | ||
+ | newinput.setAttribute('id','formsearch'); | ||
+ | var newlabel = document.createElement('label'); | ||
+ | newlabel.setAttribute('for','formsearch'); | ||
+ | newlabel.appendChild(document.createTextNode("Remplacer ")); | ||
+ | |||
+ | formform.appendChild(newlabel); | ||
+ | formform.appendChild(newinput); | ||
+ | |||
+ | var newinput = document.createElement('input'); | ||
+ | newinput.setAttribute('id','formreplace'); | ||
+ | var newlabel = document.createElement('label'); | ||
+ | newlabel.setAttribute('for','formreplace'); | ||
+ | newlabel.appendChild(document.createTextNode(' par ')); | ||
+ | |||
+ | formform.appendChild(newlabel); | ||
+ | formform.appendChild(newinput); | ||
+ | |||
+ | // go! link | ||
+ | var go_button = document.createElement('input'); | ||
+ | go_button.setAttribute('type',"submit"); | ||
+ | go_button.setAttribute('title',"go!"); | ||
+ | go_button.setAttribute('value',"go!"); | ||
+ | formform.appendChild(go_button); | ||
+ | |||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | /* run patterns */ | ||
+ | function customgo() { | ||
+ | /* get search and replace strings */ | ||
+ | |||
+ | search = document.getElementById('formsearch').value; | ||
+ | search = search.replace(/\\n/g, '\n'); | ||
+ | |||
+ | replace = document.getElementById('formreplace').value; | ||
+ | replace = replace.replace(/\\n/g, '\n'); | ||
+ | |||
+ | /* convert input to regex */ | ||
+ | |||
+ | // without delimiters | ||
+ | if(!search.match(/^\s*\/[\s\S]*\/[a-z]*\s*$/i)) { | ||
+ | search = new RegExp(search,'g'); | ||
+ | } | ||
+ | // with delimiters | ||
+ | else { | ||
+ | // break into parts | ||
+ | var regpattern = search.replace(/^\s*\/([\s\S]*)\/[a-z]*\s*$/i,'$1'); | ||
+ | var regmodifiers = search.replace(/^\s*\/[\s\S]*\/([a-z]*)\s*$/,'$1'); | ||
+ | // filter invalid flags | ||
+ | regmodifiers = regmodifiers.replace(/[^gim]/ig,''); | ||
+ | |||
+ | search = new RegExp(regpattern, regmodifiers); | ||
+ | } | ||
+ | |||
+ | /* perform */ | ||
+ | var editbox = document.getElementById('wpTextbox1'); | ||
+ | editbox.value = editbox.value.replace(search,replace); | ||
+ | |||
+ | } | ||
+ | |||
+ | /* remove form */ | ||
+ | function customremove() { | ||
+ | var regexform = document.getElementById('regexform'); | ||
+ | regexform.parentNode.removeChild(regexform); | ||
+ | patterncount = -1; | ||
+ | } | ||
+ | |||
+ | function add_regexp_button(){ | ||
+ | |||
+ | var toolbar = document.getElementById("toolbar"); | ||
+ | if(toolbar){ | ||
+ | var image = document.createElement("img"); | ||
+ | image.width = 23; | ||
+ | image.height = 22; | ||
+ | image.border = 0; | ||
+ | image.className = "mw-toolbar-editbutton"; | ||
+ | image.style.cursor = "pointer"; | ||
+ | image.alt = "regexp"; | ||
+ | image.title = "Expression régulière"; | ||
+ | image.src = "http://upload.wikimedia.org/wikipedia/commons/a/a0/Button_references_alt.png"; | ||
+ | image.onclick = custom; | ||
+ | toolbar.appendChild(image); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | addOnloadHook(add_regexp_button) | ||
+ | |||
+ | |||
+ | /******************* | ||
+ | *** lst button | ||
+ | ********************/ | ||
+ | function insert_lst(){ | ||
+ | tb = document.getElementById("wpTextbox1") | ||
+ | if(tb) { | ||
+ | if(tb.value.search("section begin")==-1){ | ||
+ | startPos = tb.selectionStart; | ||
+ | endPos = tb.selectionEnd; | ||
+ | h = tb.value.substring(0, startPos); | ||
+ | m = tb.value.substring(startPos,endPos); | ||
+ | f = tb.value.substring(endPos); | ||
+ | tb.value="<section begin=s1 />"+h+"<section end=s1 />"+m+"<section begin=s2 />"+f+"<section end=s2 />" | ||
+ | }} | ||
+ | } | ||
+ | function add_lst_button(){ | ||
+ | var toolbar = document.getElementById("toolbar"); | ||
+ | if(toolbar && wgNamespaceNumber==104){ | ||
+ | var image = document.createElement("img"); | ||
+ | image.width = 23; | ||
+ | image.height = 22; | ||
+ | image.border = 0; | ||
+ | image.className = "mw-toolbar-editbutton"; | ||
+ | image.style.cursor = "pointer"; | ||
+ | image.alt = "sections"; | ||
+ | image.title = "Sections"; | ||
+ | image.src = "http://fr.wikisource.org/skins-1.5/common/images/button_hr.png"; | ||
+ | image.onclick = insert_lst; | ||
+ | toolbar.appendChild(image); | ||
+ | } | ||
+ | } | ||
+ | addOnloadHook(add_lst_button) | ||
+ | |||
+ | |||
+ | /* | ||
+ | ===Edittools=== | ||
+ | */ | ||
+ | |||
+ | /* add menu for selecting subsets of special characters */ | ||
+ | /***** must match MediaWiki:Edittools *****/ | ||
+ | function addCharSubsetMenu() { | ||
+ | var specialchars = document.getElementById('specialchars'); | ||
+ | |||
+ | if (specialchars) { | ||
+ | var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">"; | ||
+ | menu += "<option>Document</option>"; | ||
+ | menu += "<option>Poésie</option>"; | ||
+ | menu += "<option>Théâtre</option>"; | ||
+ | menu += "<option>Auteur</option>"; | ||
+ | menu += "<option>Latin étendu</option>"; | ||
+ | menu += "<option>Grec</option>"; | ||
+ | menu += "<option>Hébreu</option>"; | ||
+ | menu += "<option>Cyrillique</option>"; | ||
+ | menu += "<option>InterWiki</option>"; | ||
+ | menu += "<option>Maintenance</option>"; | ||
+ | menu += "</select>"; | ||
+ | specialchars.innerHTML = menu + specialchars.innerHTML; | ||
+ | |||
+ | /* default subset - try to use a cookie some day */ | ||
+ | chooseCharSubset(0); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /* select subsection of special characters */ | ||
+ | function chooseCharSubset(s) { | ||
+ | var l = document.getElementById('specialchars').getElementsByTagName('p'); | ||
+ | for (var i = 0; i < l.length ; i++) { | ||
+ | l[i].style.display = i == s ? 'inline' : 'none'; | ||
+ | l[i].style.visibility = i == s ? 'visible' : 'hidden'; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | addOnloadHook(addCharSubsetMenu); | ||
+ | |||
+ | /****************************************/ | ||
+ | function mwInsertEditButton(parent, item) { | ||
+ | var image = document.createElement("img"); | ||
+ | image.width = 23; | ||
+ | image.height = 22; | ||
+ | image.src = item.imageFile; | ||
+ | image.border = 0; | ||
+ | image.style.cursor = "pointer"; | ||
+ | var ref = document.createElement("a") | ||
+ | ref.setAttribute("href", "javascript:insertTags(\"" + item.tagOpen + "\",\"" + item.tagClose + "\",\"" + item.sampleText + "\");") | ||
+ | ref.setAttribute("title", item.speedTip); | ||
+ | ref.appendChild(image); | ||
+ | |||
+ | parent.appendChild(ref); | ||
+ | } | ||
+ | |||
+ | /*</pre> | ||
+ | |||
+ | ===Générateur de tableaux=== | ||
+ | <pre>*/ | ||
+ | |||
+ | /** | ||
+ | * | ||
+ | * English: Generate an array using Mediawiki syntax | ||
+ | * | ||
+ | * @author: fr:user:dake | ||
+ | * @version: 0.1 | ||
+ | */ | ||
+ | |||
+ | function generateTableau(nbCol, nbRow, border, styleHeader, styleLine) | ||
+ | { | ||
+ | var code = "\n"; | ||
+ | if (styleHeader==1) { | ||
+ | code += '{{entête tableau charte}}\n'; | ||
+ | } else { | ||
+ | code += '{| border="' + border + '"\n'; | ||
+ | code += '|+ Titre du tableau\n'; | ||
+ | } | ||
+ | |||
+ | for (var i=0;i<nbCol;i++) code += '! en-tête ' + i + '\n' | ||
+ | |||
+ | for (var j=0;j<nbRow;j++) { | ||
+ | if ((j+1)%2==0 && styleLine==1) { | ||
+ | code += '|-{'+'{ligne grise}'+'}\n' | ||
+ | } else { | ||
+ | code += '|-----\n' | ||
+ | } | ||
+ | |||
+ | for (var i=0;i<nbCol;i++) code += '| élément\n'; | ||
+ | } | ||
+ | |||
+ | code += '|}'; | ||
+ | insertTags('','', code); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * | ||
+ | * English: Open a popup with parameters to generate an array. | ||
+ | * The number of rows/columns can be modified. Some additional | ||
+ | * parameters are related to templates available on :fr | ||
+ | * | ||
+ | * @author: fr:user:dake | ||
+ | * @version: 0.1 | ||
+ | */ | ||
+ | |||
+ | function popupTableau() | ||
+ | { | ||
+ | var popup = window.open('','name','height=400,width=500'); | ||
+ | |||
+ | javaCode = '<script type="text\/javascript">function insertCode(){'; | ||
+ | javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ' | ||
+ | javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ' | ||
+ | javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); ' | ||
+ | javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; ' | ||
+ | javaCode += 'var styleLine = document.paramForm.inputLine.checked; ' | ||
+ | javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine); ' | ||
+ | javaCode += '}<\/script>'; | ||
+ | |||
+ | popup.document.write('<html><head><title>Paramètres du tableau</title>'); | ||
+ | popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>'); | ||
+ | popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>'); | ||
+ | popup.document.write(javaCode); | ||
+ | popup.document.write('</head><body>'); | ||
+ | popup.document.write('<p>Veuillez entrer les paramètres du tableau : </p>'); | ||
+ | popup.document.write('<form name="paramForm">'); | ||
+ | popup.document.write('Nombre de lignes : <input type="text" name="inputRow" value="3" ><p>'); | ||
+ | popup.document.write('Nombre de colonnes : <input type="text" name="inputCol" value="3" ><p>'); | ||
+ | popup.document.write('Largeur de la bordure : <input type="text" name="inputBorder" value="1" ><p>'); | ||
+ | popup.document.write('En-tête en gris (style « charte graphique ») : <input type="checkbox" name="inputHeader" checked="1" ><p>'); | ||
+ | popup.document.write('Lignes grises alternées (style « charte graphique ») : <input type="checkbox" name="inputLine" checked="1" ><p>'); | ||
+ | popup.document.write('</form">'); | ||
+ | popup.document.write('<p><a href="javascript:insertCode()"> Insérer le code dans la fenêtre d\'édition</a></p>'); | ||
+ | popup.document.write('<p><a href="javascript:self.close()"> Fermer</a></p>'); | ||
+ | popup.document.write('</body></html>'); | ||
+ | popup.document.close(); | ||
+ | } | ||
+ | |||
+ | |||
+ | /*</pre> | ||
+ | ===Insertion de nouveaux boutons dans la barre d'outil=== | ||
+ | <pre>*/ | ||
+ | |||
+ | |||
//============================================================ | //============================================================ | ||
// Insertion de nouveaux boutons dans la barre d'outils | // Insertion de nouveaux boutons dans la barre d'outils | ||
Ligne 25 : | Ligne 363 : | ||
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/8f/Button_poeme.png','Poésie','<poem>\\n\\n','\\n</poem>',''); | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/8f/Button_poeme.png','Poésie','<poem>\\n\\n','\\n</poem>',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png','Commentaire','<!--','-->','Insérer votre commentaire'); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png','Redirection','#REDIRECT \[\[','\]\]','nom de la destination'); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Catégorie','\[\[Catégorie:','\]\]','nom de la catégorie'); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/5/5f/Button_center.png','Textecentré','<center>','</center>',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/en/e/e9/Button_headline2.png','paragraphe niveau 3','===','===',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/en/8/8e/Button_shifting.png', 'Insérer un retrait',':','',':' ); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png','Texte plus petit','<small>','</small>',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/5/56/Button_big.png','Texte plus grand','<big>','</big>',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png','Exposant','<sup>','</sup>',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png','Espace insécable',' \;','',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png','Aller à la ligne','<br />','',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_class_text.png', 'Paragraphe texte','<div class=\"text\">\\n\\n','\\n</div>',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/7/78/Button_titre.png','Titre de page','\{\{Titre\|','\|\|\}\}',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/03/Button_chapitre.png','Titre de Chapitre','\{\{chapitre\|1=','\|2=\|3=\|type=\|nrchapitre=\|TitreChapitre=\|commentaires=\}\}',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/07/Button_justice.png','Titre de texte légal','\{\{Légal\\n\|1=','\\n\|2=\\n|3=\\n\}\}',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c4/Button_ref.png','Ajouter une note ou référence','<ref>','</ref>',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/6/64/Buttonrefvs8.png','Liste des références','<references />','',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c3/Button_travaux.png','Infoédit','\{\{Infoédit\\n\|1=','\\n\|2=\\n\|3=\\n\|4=\\n\|5=\\n\|6=\\n\}\}',''); | ||
+ | addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4c/Button_interprojet.png','Interprojet','\{\{Interprojet\\n\|nolink\\n\|etiq=','\\n\|w=\\n\|n=\\n\|wikt=\\n\|b=\\n\|q=\\n\|v=\\n\|wikispecies=\\n\|commons=\\n\|m=\\n\}\}',''); | ||
+ | //Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags | ||
+ | function marque_tab() | ||
+ | { | ||
+ | var toolbar = document.getElementById('toolbar'); | ||
+ | if (!toolbar) return false; | ||
+ | |||
+ | var textbox = document.getElementById('wpTextbox1'); | ||
+ | if (!textbox) return false; | ||
+ | |||
+ | if (!document.selection && textbox.selectionStart == null) | ||
+ | return false; | ||
+ | |||
+ | var image = document.createElement("img"); | ||
+ | image.width = 23; | ||
+ | image.height = 22; | ||
+ | image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png'; | ||
+ | image.border = 0; | ||
+ | image.alt = 'Tableau'; | ||
+ | image.title = 'Tableau'; | ||
+ | image.style.cursor = "pointer"; | ||
+ | image.onclick = function() { | ||
+ | popupTableau(); | ||
+ | return false; | ||
+ | } | ||
+ | toolbar.appendChild(image); | ||
+ | } | ||
+ | |||
+ | addOnloadHook(marque_tab); | ||
+ | |||
+ | |||
+ | } /* endif edition*/ |
Version du 3 janvier 2010 à 19:49
/**** *Mode édition *****/ if(wgAction=='edit' || wgAction=='submit') { /* *Boutons Qualité *Auteur: ThomasV */ function addQuality(form,value){ var text=""; switch(value){ case "25%": text = "Texte incomplet"; break; case "50%": text = "Texte non formaté"; break; case "75%": text = "Complet et formaté"; break; case "100%": text = "Relu et corrigé"; break; case "Textes validés": text = "Validé"; break; case "mode_page|": text = "Texte en mode page"; break; } form.elements["wpSummary"].value="/* "+text+" */"; s = form.elements["wpTextbox1"].value; s = s.replace(/\{\{TextQuality\|(.*?)\}\}/gi,"") form.elements["wpTextbox1"].value="{"+"{TextQuality|"+value+"}"+"}"+s; } function addQualityButtons(){ if( wgNamespaceNumber != 0 ) return; var ig = document.getElementById("wpWatchthis"); if(!ig) return; var f = document.createElement("span"); f.innerHTML = ' <input type="radio" name="quality" value="25%" onclick="addQuality(this.form,this.value)"><img src = "'+q25+'">' +'<input type="radio" name="quality" value="50%" onclick="addQuality(this.form,this.value)"><img src = "'+q50+'">' +'<input type="radio" name="quality" value="75%" onclick="addQuality(this.form,this.value)"><img src = "'+q75+'">' +'<input type="radio" name="quality" value="100%" onclick="addQuality(this.form,this.value)"><img src = "'+q100+'">' +'<input type="radio" name="quality" value="Textes validés" onclick="addQuality(this.form,this.value)"><img src = "'+qvalid+'">' //+'<input type="radio" name="quality" value="mode_page|" onclick="addQuality(this.form,this.value)"><img src = "http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Open_book_nae_02.svg/20px-Open_book_nae_02.svg.png">' +' Niveau d\’avancement du texte'; ig.parentNode.insertBefore(f,ig.nextSibling.nextSibling.nextSibling) } addOnloadHook(addQualityButtons); /*** *Expressions régulières *Auteur: ThomasV, Pathoschild *Note : cet outil utilise la syntaxe javascript : on utilise $ (et pas \) pour appeler un groupe dans la chaîne de remplacement. *Tutoriel : http://www.regular-expressions.info/tutorial.html ****/ /* create form */ function custom() { /* if already open */ if(document.getElementById('regexform')) customremove() else { var editbox = document.getElementById('wpTextbox1'); /* container */ var regexform = document.createElement('div'); regexform.setAttribute('id','regexform'); editbox.parentNode.insertBefore(regexform,editbox.parentNode.firstChild); /* form tag */ var formform = document.createElement('form'); formform.setAttribute('id','regexformform'); formform.setAttribute('onSubmit','customgo(); return false;'); regexform.appendChild(formform); // add input boxes var newinput = document.createElement('input'); newinput.setAttribute('id','formsearch'); var newlabel = document.createElement('label'); newlabel.setAttribute('for','formsearch'); newlabel.appendChild(document.createTextNode("Remplacer ")); formform.appendChild(newlabel); formform.appendChild(newinput); var newinput = document.createElement('input'); newinput.setAttribute('id','formreplace'); var newlabel = document.createElement('label'); newlabel.setAttribute('for','formreplace'); newlabel.appendChild(document.createTextNode(' par ')); formform.appendChild(newlabel); formform.appendChild(newinput); // go! link var go_button = document.createElement('input'); go_button.setAttribute('type',"submit"); go_button.setAttribute('title',"go!"); go_button.setAttribute('value',"go!"); formform.appendChild(go_button); } } /* run patterns */ function customgo() { /* get search and replace strings */ search = document.getElementById('formsearch').value; search = search.replace(/\\n/g, '\n'); replace = document.getElementById('formreplace').value; replace = replace.replace(/\\n/g, '\n'); /* convert input to regex */ // without delimiters if(!search.match(/^\s*\/[\s\S]*\/[a-z]*\s*$/i)) { search = new RegExp(search,'g'); } // with delimiters else { // break into parts var regpattern = search.replace(/^\s*\/([\s\S]*)\/[a-z]*\s*$/i,'$1'); var regmodifiers = search.replace(/^\s*\/[\s\S]*\/([a-z]*)\s*$/,'$1'); // filter invalid flags regmodifiers = regmodifiers.replace(/[^gim]/ig,''); search = new RegExp(regpattern, regmodifiers); } /* perform */ var editbox = document.getElementById('wpTextbox1'); editbox.value = editbox.value.replace(search,replace); } /* remove form */ function customremove() { var regexform = document.getElementById('regexform'); regexform.parentNode.removeChild(regexform); patterncount = -1; } function add_regexp_button(){ var toolbar = document.getElementById("toolbar"); if(toolbar){ var image = document.createElement("img"); image.width = 23; image.height = 22; image.border = 0; image.className = "mw-toolbar-editbutton"; image.style.cursor = "pointer"; image.alt = "regexp"; image.title = "Expression régulière"; image.src = "http://upload.wikimedia.org/wikipedia/commons/a/a0/Button_references_alt.png"; image.onclick = custom; toolbar.appendChild(image); } } addOnloadHook(add_regexp_button) /******************* *** lst button ********************/ function insert_lst(){ tb = document.getElementById("wpTextbox1") if(tb) { if(tb.value.search("section begin")==-1){ startPos = tb.selectionStart; endPos = tb.selectionEnd; h = tb.value.substring(0, startPos); m = tb.value.substring(startPos,endPos); f = tb.value.substring(endPos); tb.value="<section begin=s1 />"+h+"<section end=s1 />"+m+"<section begin=s2 />"+f+"<section end=s2 />" }} } function add_lst_button(){ var toolbar = document.getElementById("toolbar"); if(toolbar && wgNamespaceNumber==104){ var image = document.createElement("img"); image.width = 23; image.height = 22; image.border = 0; image.className = "mw-toolbar-editbutton"; image.style.cursor = "pointer"; image.alt = "sections"; image.title = "Sections"; image.src = "http://fr.wikisource.org/skins-1.5/common/images/button_hr.png"; image.onclick = insert_lst; toolbar.appendChild(image); } } addOnloadHook(add_lst_button) /* ===Edittools=== */ /* add menu for selecting subsets of special characters */ /***** must match MediaWiki:Edittools *****/ function addCharSubsetMenu() { var specialchars = document.getElementById('specialchars'); if (specialchars) { var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">"; menu += "<option>Document</option>"; menu += "<option>Poésie</option>"; menu += "<option>Théâtre</option>"; menu += "<option>Auteur</option>"; menu += "<option>Latin étendu</option>"; menu += "<option>Grec</option>"; menu += "<option>Hébreu</option>"; menu += "<option>Cyrillique</option>"; menu += "<option>InterWiki</option>"; menu += "<option>Maintenance</option>"; menu += "</select>"; specialchars.innerHTML = menu + specialchars.innerHTML; /* default subset - try to use a cookie some day */ chooseCharSubset(0); } } /* select subsection of special characters */ function chooseCharSubset(s) { var l = document.getElementById('specialchars').getElementsByTagName('p'); for (var i = 0; i < l.length ; i++) { l[i].style.display = i == s ? 'inline' : 'none'; l[i].style.visibility = i == s ? 'visible' : 'hidden'; } } addOnloadHook(addCharSubsetMenu); /****************************************/ function mwInsertEditButton(parent, item) { var image = document.createElement("img"); image.width = 23; image.height = 22; image.src = item.imageFile; image.border = 0; image.style.cursor = "pointer"; var ref = document.createElement("a") ref.setAttribute("href", "javascript:insertTags(\"" + item.tagOpen + "\",\"" + item.tagClose + "\",\"" + item.sampleText + "\");") ref.setAttribute("title", item.speedTip); ref.appendChild(image); parent.appendChild(ref); } /*</pre> ===Générateur de tableaux=== <pre>*/ /** * * English: Generate an array using Mediawiki syntax * * @author: fr:user:dake * @version: 0.1 */ function generateTableau(nbCol, nbRow, border, styleHeader, styleLine) { var code = "\n"; if (styleHeader==1) { code += '{{entête tableau charte}}\n'; } else { code += '{| border="' + border + '"\n'; code += '|+ Titre du tableau\n'; } for (var i=0;i<nbCol;i++) code += '! en-tête ' + i + '\n' for (var j=0;j<nbRow;j++) { if ((j+1)%2==0 && styleLine==1) { code += '|-{'+'{ligne grise}'+'}\n' } else { code += '|-----\n' } for (var i=0;i<nbCol;i++) code += '| élément\n'; } code += '|}'; insertTags('','', code); } /** * * English: Open a popup with parameters to generate an array. * The number of rows/columns can be modified. Some additional * parameters are related to templates available on :fr * * @author: fr:user:dake * @version: 0.1 */ function popupTableau() { var popup = window.open('','name','height=400,width=500'); javaCode = '<script type="text\/javascript">function insertCode(){'; javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ' javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ' javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); ' javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; ' javaCode += 'var styleLine = document.paramForm.inputLine.checked; ' javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine); ' javaCode += '}<\/script>'; popup.document.write('<html><head><title>Paramètres du tableau</title>'); popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>'); popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>'); popup.document.write(javaCode); popup.document.write('</head><body>'); popup.document.write('<p>Veuillez entrer les paramètres du tableau : </p>'); popup.document.write('<form name="paramForm">'); popup.document.write('Nombre de lignes : <input type="text" name="inputRow" value="3" ><p>'); popup.document.write('Nombre de colonnes : <input type="text" name="inputCol" value="3" ><p>'); popup.document.write('Largeur de la bordure : <input type="text" name="inputBorder" value="1" ><p>'); popup.document.write('En-tête en gris (style « charte graphique ») : <input type="checkbox" name="inputHeader" checked="1" ><p>'); popup.document.write('Lignes grises alternées (style « charte graphique ») : <input type="checkbox" name="inputLine" checked="1" ><p>'); popup.document.write('</form">'); popup.document.write('<p><a href="javascript:insertCode()"> Insérer le code dans la fenêtre d\'édition</a></p>'); popup.document.write('<p><a href="javascript:self.close()"> Fermer</a></p>'); popup.document.write('</body></html>'); popup.document.close(); } /*</pre> ===Insertion de nouveaux boutons dans la barre d'outil=== <pre>*/ //============================================================ // Insertion de nouveaux boutons dans la barre d'outils //============================================================ //Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { mwCustomEditButtons[mwCustomEditButtons.length] = {"imageFile": imageFile, "speedTip": speedTip, "tagOpen": tagOpen, "tagClose": tagClose, "sampleText": sampleText}; } addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/8f/Button_poeme.png','Poésie','<poem>\\n\\n','\\n</poem>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png','Commentaire','<!--','-->','Insérer votre commentaire'); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png','Redirection','#REDIRECT \[\[','\]\]','nom de la destination'); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Catégorie','\[\[Catégorie:','\]\]','nom de la catégorie'); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/5/5f/Button_center.png','Textecentré','<center>','</center>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/en/e/e9/Button_headline2.png','paragraphe niveau 3','===','===',''); addCustomButton('http://upload.wikimedia.org/wikipedia/en/8/8e/Button_shifting.png', 'Insérer un retrait',':','',':' ); addCustomButton('http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png','Texte plus petit','<small>','</small>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/5/56/Button_big.png','Texte plus grand','<big>','</big>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png','Exposant','<sup>','</sup>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png','Espace insécable',' \;','',''); addCustomButton('http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png','Aller à la ligne','<br />','',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_class_text.png', 'Paragraphe texte','<div class=\"text\">\\n\\n','\\n</div>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/7/78/Button_titre.png','Titre de page','\{\{Titre\|','\|\|\}\}',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/03/Button_chapitre.png','Titre de Chapitre','\{\{chapitre\|1=','\|2=\|3=\|type=\|nrchapitre=\|TitreChapitre=\|commentaires=\}\}',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/07/Button_justice.png','Titre de texte légal','\{\{Légal\\n\|1=','\\n\|2=\\n|3=\\n\}\}',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c4/Button_ref.png','Ajouter une note ou référence','<ref>','</ref>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/6/64/Buttonrefvs8.png','Liste des références','<references />','',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c3/Button_travaux.png','Infoédit','\{\{Infoédit\\n\|1=','\\n\|2=\\n\|3=\\n\|4=\\n\|5=\\n\|6=\\n\}\}',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4c/Button_interprojet.png','Interprojet','\{\{Interprojet\\n\|nolink\\n\|etiq=','\\n\|w=\\n\|n=\\n\|wikt=\\n\|b=\\n\|q=\\n\|v=\\n\|wikispecies=\\n\|commons=\\n\|m=\\n\}\}',''); //Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags function marque_tab() { var toolbar = document.getElementById('toolbar'); if (!toolbar) return false; var textbox = document.getElementById('wpTextbox1'); if (!textbox) return false; if (!document.selection && textbox.selectionStart == null) return false; var image = document.createElement("img"); image.width = 23; image.height = 22; image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png'; image.border = 0; image.alt = 'Tableau'; image.title = 'Tableau'; image.style.cursor = "pointer"; image.onclick = function() { popupTableau(); return false; } toolbar.appendChild(image); } addOnloadHook(marque_tab); } /* endif edition*/