Utilisateur:Seb35/monobook.js

Un article de Wikipédia, l'encyclopédie libre.

Note : Après avoir publié la page, vous devrez forcer son rechargement pour voir les changements : Mozilla / Konqueror / Firefox : Shift-Ctrl-R, Internet Explorer / Opera : Ctrl-F5, Safari : Cmd-R.

// Chargement des fonctions<nowiki>
 
addOnloadHook(navigation_main);
 
addOnloadHook(toolbox_main);
 
addOnloadHook(titre);
 
obtenir('LiensRouges');
 
addOnloadHook(WAO);
 
if(wgAction == 'edit') addOnloadHook(minorEdit);
 
// Paramètres
lastContribNiveau2 = 12*60;
lastContribNiveau3 = 60*60;
 
adSearchButtons = Array('l','gg','g','reset','c');
adSearchOpenOptions = 'menubar=yes,location=yes,resizable=yes,scrollbars=no,status=yes';
 
//-------------------------------------------------------------------------------------------------------------
// Attention : certains de ces scripts sont fait maison spécifiquement pour Opera, et peuvent ne pas marcher pour d'autres navigateurs
 
/****************************************/
/* Mettre certains namespaces en mineur */
/****************************************/
function minorEdit()
{
 var minor = ',0,8,12,14,104,';
 if(minor.indexOf(','+wgNamespaceNumber+',') != -1) document.editform[6].checked = true;
 else document.editform[6].checked = false;
}
 
/****************************************/
/* Changement de la boîte de navigation */
/* Auteur : Seb35                       */
/****************************************/
function navigation_main()
{
 var temp = new String(''), i, j;
 var pages = new Array(
  'Administration',
  new Array('/wiki/Wikipédia:Pages_protégées_à_la_création', 'WP:PPC',
            '/wiki/Wikipédia:Requête_aux_administrateurs', 'WP:RA',
            '/wiki/Wikipédia:Demande_de_suppression_immédiate', 'WP:SI',
            '/wiki/Wikipédia:Vandalisme_en_cours', 'WP:-(',
            '/wiki/Wikipédia:Demande_de_protection_de_page', 'Protection',
            '/wiki/Wikipédia:Demande_d\'intervention_sur_une_page_protégée', 'Intervention',
            '/wiki/Wikipédia:Demande_d\'intervention_sur_un_message_système', 'WP:DIMS',
            '/wiki/Special:Pages_protégées', 'Pages protégées',
            '/wiki/Wikipédia:Demande_de_renommage', 'Renommage',
            '/wiki/Wikipédia:Demande_de_restauration_de_page', 'Restauration',
            '/wiki/Wikipédia:Pages_à_supprimer', 'WP:PàS',
            '/wiki/Wikipédia:Images_à_supprimer', 'WP:IàS',
            '/wiki/Wikipédia:Pages_soupçonnées_de_violation_de_copyright', 'WP:PCP',
            '/wiki/Special:Journal', 'Journaux',
            '/wiki/Special:Journal/newusers', '&nbsp;/nouveaux',
            '/wiki/Special:Journal/delete', '&nbsp;/suppressions',
            '/wiki/Special:Messages_système', 'Allmessages',
            '/wiki/Special:Restaurer', 'Undelete',
            '/wiki/Special:Bloquer', 'Blockip',
            '/wiki/Special:Utilisateurs_bloqués', 'Ipblocklist'),
  'Maintenance',
  new Array('/wiki/Special:Modifications_récentes', 'RC',
            '/wiki/Special:Modifications_récentes?hideliu=1&amp;limit=200', 'RC IP',
            '/wiki/Special:Contributions/newbies', 'RC newbies',
            '/wiki/Special:Nouvelles_pages', 'Nouvelles pages',
            '/wiki/Special:Nouvelles_images', 'Nouvelles images',
            '/wiki/Special:Pages_en_impasse', 'Impasses',
            '/wiki/Projet:Pages_en_impasse', '&nbsp;WP:PeI',
            '/wiki/Special:CrossNamespaceLinks', 'Croisés',
            '/wiki/Special:Sans_interwiki', 'Sans interwiki',
            '/wiki/Catégorie:Article_à_wikifier', 'À wikifier',
            '/wiki/Special:Catégories_demandées?limit=1000', 'Wantedcategories',
            '/wiki/Wikipédia:Pages_à_fusionner', 'WP:PàF',
            '/wiki/Projet:Maintenance', 'WP:CM'),
  'Autres',
  new Array('/wiki/Wikipédia:Bulletin_des_administrateurs/semaine_en_cours', 'WP:BA',
            '/wiki/Wikipédia:Le_Bistro_du_jour', 'Le Bistro de jour',
            '/wiki/Wikipédia:Le_Bistro_de_la_veille', 'Le Bistro de veille',
            '/wiki/Wikipédia:Conventions_typographiques', 'WP:CTYP',
            '/wiki/Wikipédia:Conditions_d\'admissibilité_des_articles', 'WP:Cdada',
            '/wiki/Wikipédia:Conventions_filmographiques/Présentation_des_films', 'CTYP films',
            '/wiki/Wikipédia:Modèles', 'Modèles',
            '/wiki/Catégorie:Espace_Modèle', 'Espace Modèle',
            '/wiki/Projet:Mathématiques', 'Projet maths',
            '/wiki/Portail:Accueil', 'WP:PORT',
            '/wiki/Projet:Accueil', 'WP:PROJ',
            '/wiki/Projet:Traduction', 'WP:PT'),
  'Externe',
  new Array('https://secure.wikimedia.org/otrs/index.pl', 'OTRS',
            'http://otrs-wiki.wikimedia.org/wiki/Main_Page', 'OTRS Wiki',
            'http://membres.wikimedia.fr/index.php/Accueil', 'Wiki membres',
            'http://www.wikimedia.fr/', 'Wikimédia France',
            'http://svn.wikimedia.org/viewvc/mediawiki/trunk/?sortby=date', 'SVN',
            'http://wikimania2008.wikimedia.org/wiki/Main_Page', 'Wikimania 2008',
            'http://quality.wikimedia.org/wiki/Portal', 'Quality')
 );
 
 document.getElementById('n-aboutwp').style.display = 'none';
 document.getElementById('n-sitesupport').style.display = 'none';
 for(i=0; i<(pages.length)/2; i++)
 {
  temp += '<li><a style="cursor:pointer;" onmouseover="timerNavigation = setTimeout(toggleMenu, 300, '+i+', 1);" onmouseout="clearTimeout(timerNavigation);" onclick="clearTimeout(timerNavigation); toggleMenu('+i+');">';
  temp += pages[2*i];
  temp += '</a><div style="padding-left:1em;"><ul id="menu'+i+'" style="display:none;">';
  for(j=0; j<(pages[2*i+1].length)/2; j++) { temp += '<li><a href="'; temp += pages[2*i+1][2*j]; temp += '">'; temp += pages[2*i+1][2*j+1]; temp += '</a></li>'; }
  temp += '</div></ul></li>';
 }
 document.getElementById('p-Contribuer').getElementsByTagName('ul')[0].innerHTML += temp;
}
 
/************************************************/
/* Ouvre un menu créé par la fonction ci-dessus */
/************************************************/
function toggleMenu(a, o)
{
 a = document.getElementById('menu'+a);
 if(a.style.display == 'inline' && o != 1) a.style.display = 'none';
 else if(a.style.display == 'none') a.style.display = 'inline';
}
function ucfirst(w) { return w.charAt(0).toUpperCase()+w.substr(1); }
 
/************************************************/
/* Ajoute des liens vers certains outils sympas */
/************************************************/
function toolbox_main()
{
 var temp = new String(''), utilisateur = new String('');
 
 try { document.getElementById('t-print').style.display = 'none'; } catch(e) {};
 try { document.getElementById('t-cite').style.display = 'none'; } catch(e) {};
 
 if(wgCanonicalSpecialPageName == 'Newpages') {
   timerNewpages = setTimeout("window.location.reload(true); return;", 220*1000);
   temp += '<hr />';
   temp += '<li id="newpages-stop"><a href="javascript:clearTimeout(timerNewpages);document.getElementById(\'newpages-stop\').style.display=\'none\'; return;">Arrêter le rechargement</a></li>';
   temp += '<li><a href="javascript:window.location.reload(true); return;">Purger la page</a></li>';
 }
 
 if(wgNamespaceNumber != -1) {
   temp += '<hr />';
   temp += '<li><a href="/wiki/'+encodeURI(wgPageName)+'?action=purge">Purger la page</a></li>';
   temp += '<li><a href="http://www.google.com/search?num=100&amp;q=%22' + wgTitle + '%22">Google</a> <a href="http://www.google.com/search?num=100&amp;q=' + wgTitle + '+site:en.wikipedia.org">(en)</a> <a href="http://www.google.com/search?num=100&amp;q=' + wgTitle + '+site:fr.wikipedia.org">(fr)</a> <a href="http://www.google.com/search?num=100&amp;q=' + wgTitle + '+site:wikipedia.org+-site:fr.wikipedia.org">(wp)</a></li>';
 }
 
 if(wgNamespaceNumber == 2 || wgNamespaceNumber == 3)
 {
  utilisateur = wgTitle.replace(/\//, '>').replace(/(.*)>.*/, '$1');
  temp += '<li><a href="http://tools.wikimedia.de/~dab/jservlets/editcounter/result?return=numberstats&projectname=frwiki_p&username=' + utilisateur + '">Ancienneté</a></li>';
 }
 if(wgNamespaceNumber==14&&(wgAction=='edit'||wgAction=='view')&&!wgCurRevisionId&&(wgTitle.substr(0,7)=='Comté d'||wgTitle.substr(0,10)=='Paroisse d'||wgTitle.substr(0,13)=='Subdivision d'))
 temp += '<li><a href="/wiki/Liste_de_comtés_homonymes_aux_États-Unis">Homonomyie comtés</a></li>';
 
 document.getElementById('p-tb').getElementsByTagName('ul')[0].innerHTML += temp;
 
 addPortletLink('p-personal', '/wiki/Utilisateur:Seb35/Potager?action=edit', 'Potager', '', '', '', document.getElementById('pt-preferences'));
 addPortletLink('p-personal', '/wiki/Special:Log?user=Seb35', 'Actions', '', '', '', document.getElementById('pt-logout'));
}
 
//Quelques raccourcis pour Opera dont les normaux ne sont pas très pratiques
function shortcutsOpera(ev)
{
 if(ev.ctrlKey && ev.keyCode == 32)
 {
  if(document.getElementById('wpTextbox1')) document.getElementById('wpTextbox1').focus();
  else window.location.assign('/w/index.php?title='+encodeURI(wgPageName)+'&action=edit');
 }
 if(ev.ctrlKey && ev.shiftKey) document.adsearch.adinput.focus();
}
hookEvent('keydown', shortcutsOpera);
 
//Aide à la wikification
function WAO()
{
 if(!document.getElementById('wpTextbox1')) return;
 
 WAOAjax = sajax_init_object();
 WAOMaj = false;
 WAOPrec = 0;
 WAOLastRequest = '';
 var coche = WAOCookie(1, 0);
 
 var labeltag = document.editform.getElementsByTagName('label');
 var i = 0; while(labeltag[i].getAttribute('for') != 'wpWatchthis') i++;
 var suivant = labeltag[i].nextSibling;
 
 var span = document.createElement('span');
 function inpt(a, b, c) { return ' <input type="checkbox" name="WAO'+a+'" id="WAO'+a+'"'+WAOCookie(1,b)+' onclick="WAOCookie(0,'+b+',this);" /> <label for="WAO'+a+'">'+c+'</label>'; }
 span.innerHTML =
  inpt('Checkbox',0,'WAO') +
  '<span id="WAOAutres" style="display:'+(coche ? 'inline' : 'none')+';">' +
  inpt('Ajax',1,'Ajax') +
  inpt('Goog',2,'Google') +
  inpt('WP',3,'Wikipédia') +
  inpt('Adsearch',4,'Rechercher') +
  '</span>';
 suivant.parentNode.insertBefore(span, suivant);
 
 if(WAOAjax)
 {
  var a = document.getElementById('column-one');
  a.innerHTML = a.innerHTML
   + '<div id="p-WAO" class="portlet" style="display:'+(WAOAjax && coche && WAOCookie(1,1) ? 'block' : 'none')+';">'
   + '<h5>WAO</h5>'
   + '<div class="pBody">'
   + '<ul>'
   + '<li><span id="WAOArticle">&nbsp;</span></li>'
   + '<li>Google : <span id="WAOGoogle"></span></li>'
   //+ '<li>Redirect : <span id="WAORedirect"></span></li>'
   + '<li>Pages liées : <span id="WAOLiees"></span></li>'
   + '</ul>'
   + '</div>'
   + '</div>';
 }
 
 document.editform.wpTextbox1.setAttribute('onkeyup', 'if(WAOMaj && !event.shiftKey) WAOOuvrir(1); if(event.keyCode == 17 && WAOPrec == 17) WAOOuvrir(2);');
 document.editform.wpTextbox1.setAttribute('onkeydown', 'WAOMaj = event.shiftKey; WAOPrec = event.keyCode;');
 document.editform.wpTextbox1.setAttribute('onselect', 'if(!WAOMaj) WAOOuvrir(1);');
}
 
function WAOCookie(lire, nom, objet)
{
 var cookiePos = document.cookie.indexOf('WAO=');
 expiryDate = new Date();
 expiryDate.setTime(expiryDate.getTime()+3600000*24*30);
 if(cookiePos == -1) { document.cookie = 'WAO=00000; path=/; expires='+expiryDate.toGMTString(); cookiePos = document.cookie.indexOf('WAO='); }
 if(lire)
 {
  if(document.cookie.charAt(cookiePos+4+nom) == '1') return ' checked="checked"';
  else return '';
 }
 else
 {
  var cook = document.cookie.substr(cookiePos+4, 5);
  if(objet.checked) cook = cook.substr(0,nom)+'1'+cook.substring(nom+1,5);
  else cook = cook.substr(0,nom)+'0'+cook.substring(nom+1,5);
  document.cookie = 'WAO=' + cook + '; path=/; expires='+expiryDate.toGMTString();
  if(nom == 0)
  {
   if(objet.checked) document.getElementById('WAOAutres').style.display = 'inline';
   else document.getElementById('WAOAutres').style.display = 'none';
  }
  if(WAOAjax && (nom == 0 || nom == 1))
  {
   if(document.editform.WAOCheckbox.checked && document.editform.WAOAjax.checked) document.getElementById('p-WAO').style.display = 'block';
   else document.getElementById('p-WAO').style.display = 'none';
  }
 }
}
 
function WAOOuvrir(numero)
{
 if(!document.editform.WAOCheckbox.checked) return;
 var myText = '';
 var txtarea = document.editform.wpTextbox1;
 if(numero == 1) { myText = document.selection.createRange().text; WAOMaj = false; }
 
 if(numero == 2 && txtarea.selectionStart-txtarea.selectionEnd == 0)
 {
  var cur = curc = cure = txtarea.selectionStart;
  var i = 0;
  var espace = false;
  var txt = txtarea.value;
 
  while(!(txt[curc-2] == '[' && txt[curc-1] == '['))
  {
   if(curc == 0 || cur - curc >= 255 || txt[curc-1] == ']') { espace = true; break; }
   else
   {
    if(cure == cur && txt[curc].search(/[ \f\n\r\t\v]/) != -1) cure = curc;
    curc--;
   }
  }
  if(!espace)
  {
   i = curc;
   while(txt[i] != '|' && txt[i-1] != ']' && txt[i] != ']' && i < txt.length && i - curc <= 255) i++;
   myText = txt.substring(curc, i);
  }
  else
  {
   i = cure+1;
   while(txt[i].search(/[ \f\n\r\t\v]/) == -1 && i < txt.length && i - cure <= 255) i++;
   myText = txt.substring(cure+1, i);
  }
  WAOCtrl = false;
 }
 
 if(myText.length == 0 || myText.length >= 255 || myText.search(/[\f\n\r\t\v\|\[\]_{_}]/) != -1 || myText == WAOLastRequest) return;
 dat = new Date();
 
 if(WAOAjax && document.editform.WAOAjax.checked)
 {
  WAOLastRequest = myText;
  WAOAjax.open('get', wgServer+'/w/api.php?action=query&format=xml&list=backlinks&bllimit=20&prop=info&titles=' + encodeURI(myText), false);
  WAOAjax.onreadystatechange = WAOResponse;
  WAOAjax.send(null);
 }
 if(document.editform.WAOGoog.checked)
 {
  var fenetre = window.open('http://www.google.com/search?num=100&q='+encodeURI(myText)+'+site:fr.wikipedia.org', 'f1'+dat.getTime(), 'menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes');
  fenetre.blur();
 }
 if(document.editform.WAOWP.checked)
 {
  var fenetre = window.open('http://fr.wikipedia.org/wiki/'+encodeURI(myText), 'f2'+dat.getTime(), 'menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes');
  fenetre.blur();
 }
 if(document.editform.WAOAdsearch.checked)
 {
  if(document.adsearch) document.adsearch.adinput.value = myText;
  else document.getElementById('searchform').search.value = myText;
 }
}
 
function WAOResponse()
{
 if(WAOAjax.readyState != 4) return;
 
 xmlDoc = WAOAjax.responseXML;
 mot = xmlDoc.getElementsByTagName('page')[0].getAttribute('title');
 
 document.getElementById('WAOGoogle').innerHTML = '<a href="http://www.google.com/search?num=100&as_occt=any&q=' + encodeURI(mot) + '+site:fr.wikipedia.org">( fr )</a> <a href="http://www.google.com/search?num=100&as_occt=any&q=' + encodeURI(mot) + '+site:wikipedia.org+-site:fr.wikipedia.org">(tout)</a>';
 
 page = xmlDoc.getElementsByTagName('page');
 redirect = (page[0].getAttribute('redirect') == '');
 if(page[0].getAttribute('missing') == '') document.getElementById('WAOArticle').innerHTML = '<a href="/w/index.php?title='+encodeURI(mot.replace(/ /g, '_'))+'&amp;action=edit" class="new">'+(mot.length>17 ? mot.substr(0,16)+'…' : mot)+'</a>';
 else document.getElementById('WAOArticle').innerHTML = (redirect?'<span class="allpagesredirect">':'')+'<a href="/wiki/'+mot.replace(/ /g, '_')+'">'+(mot.length>20 ? mot.substr(0,19)+'…' : mot)+'</a>'+(redirect?'</span>':'');
 
 nb = xmlDoc.getElementsByTagName('bl').length;
 if(nb == 0) document.getElementById('WAOLiees').innerHTML = '0';
 else document.getElementById('WAOLiees').innerHTML = '<a href="'+wgServer+'/wiki/Special:Whatlinkshere/'+encodeURI(mot.replace(/ /g, '_'))+'">'+(nb == 20 ? '≥ 20' : nb)+'</a>';
}
 
function titre() {
 if(document.getElementById('wpTextbox1')) { document.getElementsByTagName('h1')[0].innerHTML = wgPageName.replace(/_/g,' '); }
}
 
//</nowiki>