This is an archive copy of wikilivres.ca as of 18 February 2017 (from the WikiTeam dump). The original site is closed.

MediaWiki:Monobook.js: Difference between revisions

Free texts and images.
Jump to navigation Jump to search
imported>Marc
No edit summary
imported>Sergey kudryavtsev
bug fix
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
/* <pre> <nowiki> */
/* <pre> */
 
document.write('<script type="text/javascript" src="'
            + 'http://fr.wikipedia.org/w/index.php?title=Utilisateur:GôTô/objects.js'
            + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 
document.write('<script type="text/javascript" src="'
            + 'http://fr.wikipedia.org/w/index.php?title=Utilisateur:Dake/monobook.js/deluxehistory.js'
            + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 
// [[User:Lupin/popups.js]]
 
document.write('<script type="text/javascript" src="'
            + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
            + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');


/* tooltips and access keys */
/* tooltips and access keys */
Line 67: Line 53:




//============================================================
/* </pre> */
//
/***
// Fonctions de gestion
*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 */
* Installation d'une nouvelle fonction de cette façon:
function custom() {
* aOnloadFunctions[aOnloadFunctions.length] = nom_de_la_fonction; // (sans parenthèses)
*/
if (!window.aOnloadFunctions) {  
  var aOnloadFunctions = new Array();
}


window.onload = function()  
/* if already open */
{
if(document.getElementById('regexform')) customremove()
  if (window.aOnloadFunctions) {
else {
    for (var _i=0; _i<aOnloadFunctions.length; _i++) {
                        editbox = document.getElementById('wpTextbox1');
      aOnloadFunctions[_i]();
/* container */
    }
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');
        newlabel = document.createElement('label');
        newlabel.setAttribute('for','formsearch');
newlabel.appendChild(document.createTextNode("Remplacer "));


/**
formform.appendChild(newlabel);
* Ajouter une nouvelle fonction a excuter au chargement de la page.
formform.appendChild(newinput);
*/
function addLoadEvent(func)  
var newinput = document.createElement('input');
{
newinput.setAttribute('id','formreplace');
  if (window.addEventListener)  
newlabel = document.createElement('label');
    window.addEventListener("load", func, false);
newlabel.setAttribute('for','formreplace');
  else if (window.attachEvent)  
newlabel.appendChild(document.createTextNode(' par '));
    window.attachEvent("onload", func);
}
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);


//============================================================
//
// Barre d'outil
//
//============================================================
//============================================================
// Générateur de tableaux
//============================================================
/**
*
* 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();
}


//============================================================
/* run patterns */
// Insertion de nouveaux boutons dans la barre d'outil
function customgo() {
//============================================================
/* get search and replace strings */


/**
                search = document.getElementById('formsearch').value;
* Ajoute quelques boutons sur la barre d'outil
search = search.replace(/\\n/g, '\n');
* Inspiré de mon code précédent et des icônes sur he:
* @author: fr:user:dake
* @version: 0.1
*/
function ImprovedToolbar()
{
tooly = document.getElementById('toolbar');
if (tooly == null) return;


StrikeTextButton = "<a href=\"javascript:insertTags('<s>','</s>','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/3/30/Btn_toolbar_rayer.png\" alt=\"Rayer\" title=\"Rayer\"></a>";
                replace = document.getElementById('formreplace').value;
EnumTextButton = "<a href=\"javascript:insertTags('\\n# élément 1\\n# élément 2\\n# élément 3','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/8/88/Btn_toolbar_enum.png\" alt=\"Énumération\" title=\"Énumération\"></a>";
replace = replace.replace(/\\n/g, '\n');
ListTextButton = "<a href=\"javascript:insertTags('\\n* élément A\\n* élément B\\n* élément C','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/1/11/Btn_toolbar_liste.png\" alt=\"Liste\" title=\"Liste\"></a>";
GalleryButton = "<a href=\"javascript:insertTags('\\n<gallery>\\nImage:Vista-openbsd.png|Légende\\nImage:AMule.png|Légende\\nImage:Cyberduck icon.png|Légende\\n</gallery>','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/9/9e/Btn_toolbar_gallery.png\" alt=\"Galerie d'images\" title=\"Galerie d'images\"></a>";
CommentTextButton = "<a href=\"javascript:insertTags('<!--','-->','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/3/37/Btn_toolbar_commentaire.png\" alt=\"Commentaire\" title=\"Commentaire\"></a>";
RedirectButton = "<a href=\"javascript:insertTags('#REDIRECT [[',']]','nom de la destination');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png\" alt=\"Redirection\" title=\"Redirection\"></a>";
ArrayButton = "<a href=\"javascript:popupTableau();\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/0/04/Button_array.png\" alt=\"Tableau\" title=\"Tableau\"></a>";
CenterTextButton = "<a href=\"javascript:insertTags('<div style=&quot;text-align: center;&quot;>','</div>','Centered text');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/5/5f/Button_center.png\" alt=\"Centré\" title=\"Texte centré\"></a>";


SecondaryHeadlineButton = "<a href=\"javascript:insertTags('\\n===','===','Secondary headline');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/e/e9/Button_headline2.png\" alt=\"2nd header\" title=\"Insérer un sous-titre de niveau inférieur\"></a>";
/* convert input to regex */


ShiftingButton = "<a href=\"javascript:insertTags(':','',':');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/8/8e/Button_shifting.png\" alt=\"Retrait\" title=\"Insérer un retrait\"></a>";
// 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,'');


SmallTextButton = "<a href=\"javascript:insertTags('<small>','</small>','Small text');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png\" alt=\"Petit\" title=\"Texte plus petit\"></a>";
search = new RegExp(regpattern, regmodifiers);
}


UpperTextButton = "<a href=\"javascript:insertTags('<sup>','</sup>','Superscript');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png\" alt=\"Exposant\" title=\"Exposant\"></a>";
/* perform */
editbox.value = editbox.value.replace(search,replace);


SubLinkButton = "<a href=\"javascript:insertTags('[[Page#',']]','Sub_page');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/9/93/Button_sub_link.png\" alt=\"Lien pour sous-titre\" title=\"Insérer un lien vers le sous-titre d'une page\"></a>";
}


BlockQuoteButton = "<a href=\"javascript:insertTags('<blockquote style=&quot;border: 1px solid blue; padding: 2em;&quot;>\\n','\\n</blockquote>','Block quote');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png\" alt=\"Citation\" title=\"Insérer un bloc de citation\"></a>";
/* remove form */
 
function customremove() {
EenterButton = "<a href=\"javascript:insertTags('<br />','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png\" alt=\"à la ligne\" title=\"Aller à la ligne\"></a>";
regexform.parentNode.removeChild(regexform);
 
patterncount = -1;
 
}
tooly.innerHTML = tooly.innerHTML + StrikeTextButton + EnumTextButton +
ListTextButton + CommentTextButton + GalleryButton + RedirectButton + ArrayButton + CenterTextButton + SecondaryHeadlineButton + ShiftingButton + SmallTextButton + UpperTextButton + SubLinkButton + BlockQuoteButton + BlockQuoteButton + EenterButton  ;
}
 
addLoadEvent(ImprovedToolbar);
 
//============================================================
//
// Caractères spéciaux
//
//============================================================
 
/**
* Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux
* @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools !
*/
function addCharSubsetMenu() {
  var specialchars = document.getElementById('specialchars');
 
  if (specialchars) {
    var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
    menu += "<option>Wiki</option>";
    menu += "<option>Latin/Romain</option>";
    menu += "<option>Grec</option>";
    menu += "<option>Cyrillique</option>";
    menu += "<option>AHD</option>";
    menu += "<option>Allemand</option>";
    menu += "<option>Arabe</option>";
    menu += "<option>Catalan</option>";
    menu += "<option>Croate</option>";
    menu += "<option>Espagnol</option>";
    menu += "<option>Espéranto</option>";
    menu += "<option>Estonien</option>";
    menu += "<option>Gallois</option>";
    menu += "<option>Hawaien</option>";
    menu += "<option>Hébreu</option>";
    menu += "<option>Hiéroglyphe</option>";
    menu += "<option>Hollandais</option>";
    menu += "<option>Hongrois</option>";
    menu += "<option>Indo-européen</option>";
    menu += "<option>Irlandais</option>";
    menu += "<option>Islandais</option>";
    menu += "<option>Italien</option>";
    menu += "<option>Letton</option>";
    menu += "<option>Lituanien</option>";
    menu += "<option>Maltais</option>";
    menu += "<option>Navajo & Apache</option>";
    menu += "<option>Pinyin</option>";
    menu += "<option>Polonais</option>";
    menu += "<option>Portugais</option>";
    menu += "<option>Rōmaji</option>";
    menu += "<option>Roumain</option>";
    menu += "<option>Scandinave</option>";
    menu += "<option>Serbe</option>";
    menu += "<option>Tchèque</option>";
    menu += "<option>Turc</option>";
    menu += "<option>Vieil anglais</option>";
    menu += "<option>Vietnamien</option>";
    menu += "<option>Yiddish</option>";
    menu += "<option>API</option>";
    menu += "<option>Mathématiques</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';
  }
}


addLoadEvent(addCharSubsetMenu);
/*******************
*** create button
********************/
        function add_regexp_button(){


/* 
            var toolbar = document.getElementById("toolbar");
/* </nowiki> </pre> */
  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)

Latest revision as of 14:12, 11 February 2009

/* <pre> */

/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-logout'] = new Array('o','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
ta['ca-history'] = new Array('h','Past versions of this page.');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Main Page');
ta['n-mainpage'] = new Array('z','Visit the Main Page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out.');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-upload'] = new Array('u','Upload images or media files');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.');
ta['ca-nstab-wp'] = new Array('a','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');


/* </pre> */
	/***
	*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 {	
                        editbox = document.getElementById('wpTextbox1');
			/* container */
			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');
		        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');
			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 */
		editbox.value = editbox.value.replace(search,replace);

	}

	/* remove form */
	function customremove() {
		regexform.parentNode.removeChild(regexform);
		patterncount = -1;
	}


	/*******************
	*** create button
	********************/
        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)