MediaWiki:Monobook.js

From WikiMediation

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
/* <source lang=javascript> */
+
/*  
-
/* Any JavaScript here will be loaded for users using the MonoBook skin */
+
__FORCETOC__
-
/** Anon tips and donation banner **************************
+
==infobulles et touches d’accès==
-
  *
+
<pre>*/
-
  * Description: This implements an anon tips / donation banner. It includes a workaround for
+
ta = new Object();
-
  *              the Z-index bug found in Internet Explorer. It correctly places the anon notice
+
ta['pt-userpage'] = new Array('.','My user page');
-
  *              on the page, even under IE6. See this Google search for more information about the bug:
+
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
-
  *              http://www.google.com/search?q=z-index+ie6+bug
+
ta['pt-mytalk'] = new Array('n','My talk page');
-
  *  Maintainers: [[wikipedia:en:User:Gmaxwell]], [[wikipedia:en:User:MZMcBride]]
+
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');
-
if(wgUserName == null) addOnloadHook((function (){
+
/*</pre>
-
    var message=new Array();
+
 
-
      message[0]='Your <a href="http://www.wikimediation.org/" class="extiw" title="wikimedia:Fundraising"><b>contribution relational quality</b></a>';
+
==Générateur de tableaux==
-
        message[1]='<a href="http://fr.wikimediation.org/" class="extiw" title="The thinkingman"><b>ViaMediation</b></a>think relational quality !';
+
<pre>*/
-
        message[2]=' Choose the path of your thinking : adversity or otherness <a href="http://wikimediation.org/" class="extiw" title="french Mediation "></a>';
+
 
-
        message[3]='Your <a href="http://www.wikimediation.org/" class="extiw" title="WikiMediation"><b>contribution relational quality</b></a> The main for every one !';
+
/**
-
        message[4]='<a href="http://fr.wikimediation.org/" class="extiw" title="WikiMediation"><b>ViaMediation</b></a>think relational quality !';
+
*
-
        message[5]=' Choose the path of your thinking : adversity or otherness <a href="http://wikimediation.org/" class="extiw" title="french Mediation "></a>';
+
* English: Generate an array using Mediawiki syntax
-
        message[6]='Your <a href="http://www.wikimediation.org/" class="extiw" title="WikiMediation"><b>contribution relational quality</b></a> WikiMediation for you !';
+
*
-
        message[7]='<a href="http://fr.wikimediation.org/" class="extiw" title="The thinkingman"><b>ViaMediation</b></a>think relational quality !';
+
* @author: fr:user:dake
-
        message[8]=' Choose the path of your thinking : adversity or otherness <a href="http://wikimediation.org/" class="extiw" title="french Mediation "></a>';
+
* @version: 0.1
-
        message[9]='Your <a href="http://www.wikimediation.org/" class="extiw" title="WikiMediation"><b>contribution relational quality</b></a> WikiMediation for every one !';
+
*/
-
    var weightLimit = 6;
+
-
    var biasPercent = 0.815;
+
-
    var whichMessage = (Math.random() < biasPercent) ? weightLimit : message.length;
+
   
   
-
    whichMessage = Math.floor(Math.random() * whichMessage);
+
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
 +
*/
   
   
-
    var wrapper = document.getElementById("globalWrapper");
+
function popupTableau()
-
    if (wrapper) {
+
{
-
        var div = document.createElement('div');
+
  var popup = window.open('','name','height=400,width=500');
-
        div.id = "anon-banner";
+
 
-
        div.className = "noprint";
+
  javaCode =  '<script type="text\/javascript">function insertCode(){';
-
        div.style.cssText = "position:absolute; z-index:40; left:155px; top:1px; clear:both; float:left; font-size:90%; font-style:italic; white-space:nowrap";
+
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '
-
        div.innerHTML = message[whichMessage];
+
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '
-
        wrapper.insertBefore(div, wrapper.firstChild);
+
  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>
 +
 +
== Insersion des caractères spéciaux ==
 +
 +
<pre>*/
 +
 +
/**
 +
* 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 (modèles)</option>";
 +
    menu += "<option>Latin/Romain</option>";
 +
    menu += "<option>Grec</option>";
 +
    menu += "<option>Cyrillique</option>";
 +
    menu += "<option>AHD</option>";
 +
    menu += "<option>Allemand</option>";
 +
    menu += "<option>Catalan</option>";
 +
    menu += "<option>Croate</option>";
 +
    menu += "<option>Espagnol</option>";
 +
    menu += "<option>Espéranto</option>";
 +
    menu += "<option>Estonien</option>";
 +
    menu += "<option>Français</option>";
 +
    menu += "<option>Gallois</option>";
 +
    menu += "<option>Hawaien</option>";
 +
    menu += "<option>Islandais</option>";
 +
    menu += "<option>Italien</option>";
 +
    menu += "<option>Japonais</option>";
 +
    menu += "<option>Maltais</option>";
 +
    menu += "<option>Pinyin</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 += "</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);
 +
 +
/*</pre>
 +
== Générateur de tableaux ==
 +
<pre>*/
 +
 +
//============================================================
 +
// 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();
 +
}
 +
 +
/*</pre>
 +
== Insertion de nouveaux boutons dans la barre d'outil ==
 +
 +
<pre>*/
 +
 +
//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/3/30/Btn_toolbar_rayer.png','Rayer','<s>','</s>','');
 +
// addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Énumération','\\n# élément 1\\n# élément 2\\n# élément 3','','');
 +
// addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png','Liste','\\n* élément A\\n* élément B\\n* élément C','','');
 +
 +
//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);
 +
}
-
/** Topbar content fix with sitenotice / CentralNotice **************************
+
addOnloadHook(marque_tab);
-
  *
+
-
  *  Description: This fixes the location of topbar content (e.g., featured
+
-
  *              content star) when the sitenotice or CentralNotice is active.
+
-
  *  Maintainers: [[wikipedia:en:User:TheDJ]], [[wikipedia:en:User:MZMcBride]]
+
-
  */
+
-
if((navigator.userAgent.indexOf("MSIE 6")==-1) && (wgAction == 'submit' || wgAction == 'view')) addOnloadHook(function() {
+
/*</pre>*/
-
    var cnote = document.getElementById('centralNotice');
+
-
    if( !document.getElementById('mw-dismissible-notice') && !(cnote && hasClass(cnote, 'expanded'))) return;
+
-
    appendCSS('#bodyContent { position:relative; } \n.topicon { position:absolute; top:-2em !important;}\n#coordinates{ position:absolute; top:1px !important; }');
+
-
})
+
-
/* </source> */
+

Revision as of 15:58, 28 May 2009

/* 
__FORCETOC__
 
==infobulles et touches d’accès==
<pre>*/
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>
 
==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>
 
== Insersion des caractères spéciaux ==
 
<pre>*/
 
/**
 * 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 (modèles)</option>";
    menu += "<option>Latin/Romain</option>";
    menu += "<option>Grec</option>";
    menu += "<option>Cyrillique</option>";
    menu += "<option>AHD</option>";
    menu += "<option>Allemand</option>";
    menu += "<option>Catalan</option>";
    menu += "<option>Croate</option>";
    menu += "<option>Espagnol</option>";
    menu += "<option>Espéranto</option>";
    menu += "<option>Estonien</option>";
    menu += "<option>Français</option>";
    menu += "<option>Gallois</option>";
    menu += "<option>Hawaien</option>";
    menu += "<option>Islandais</option>";
    menu += "<option>Italien</option>";
    menu += "<option>Japonais</option>";
    menu += "<option>Maltais</option>";
    menu += "<option>Pinyin</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 += "</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);
 
/*</pre>
== Générateur de tableaux ==
<pre>*/
 
//============================================================
// 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();
}
 
/*</pre>
== Insertion de nouveaux boutons dans la barre d'outil ==
 
<pre>*/
 
//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/3/30/Btn_toolbar_rayer.png','Rayer','<s>','</s>','');
// addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Énumération','\\n# élément 1\\n# élément 2\\n# élément 3','','');
// addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png','Liste','\\n* élément A\\n* élément B\\n* élément C','','');
 
//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);
 
/*</pre>*/
Personal tools
WikiMediation Partners