Uzanto:Automatik/common.js

El Vikivortaro

Notu: Post konservado vi forviŝu la kaŝmemoron de via foliumilo por vidi la ŝanĝojn : Mozilo: alklaku Reŝarĝi (aŭ Stir-Shift-R), IE / Opera: Stir-F5, Safari: Cmd-R, Konqueror Stir-R.

mw.loader.load('//fr.wiktionary.org/w/index.php?title=Utilisateur:Automatik/sul.js&action=raw&ctype=text/javascript');

// Automatic changes in the page
if (mw.config.get('wgNamespaceNumber') == 10 && $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
	var wikibloc = document.getElementById( 'wpTextbox1' );
	$( '#editform' ).submit(function( event) {
		wikibloc.value = wikibloc.value.replace( /\[\[(?:Category|Kategorio):([^\]\n]+?)\|?\{\{(?:paĝonomo|pagename|pagxonomo)\}\}\]\]/ig, "[[Kategorio:$1]]" );
		wikibloc.value = wikibloc.value.replace( "color 1=", "koloro 1=" );
		wikibloc.value = wikibloc.value.replace( "color 2=", "koloro 2=" );
		wikibloc.value = wikibloc.value.replace( /letter code size([=}])/g, "literkodgrandeco$1" );
		wikibloc.value = wikibloc.value.replace( /letter code([=}])/g, "literkodo$1" );
		wikibloc.value = wikibloc.value.replace( /text size([=}])/g, "tekstgrandeco$1" );
		wikibloc.value = wikibloc.value.replace( /text([=}])/g, "teksto$1" );
		//wikibloc.value = wikibloc.value.replace( , )
	});
}

/**
 * getElementsByClass : rechercher les éléments de la page dont le paramètre "class" est celui recherché
 * Importé de fr.wiktionary.org/w/index.php?title=MediaWiki:Common.js&oldid=10537788
 */
function getElementsByClass(searchClass, node, tag) {
  if (node == null) node = document;
  if (tag == null) tag = '*'; 
  return getElementsByClassName(node, tag, searchClass);
}

/**
* Importé de //fr.wiktionary.org/w/index.php?title=MediaWiki:Gadget-SommaireDeveloppable.js
*/
var SommaireDeveloppable_PreDevelop = ( mw.config.get('wgNamespaceNumber') == 0 ); // uniquement dans (principal)
 
// Faut-il numéroter les sections dans la tdm ?
var SommaireDeveloppable_Numerote = mw.user.options.get('numberheadings'); // utilise les préférences de l'utilisateur
 
// Quels caractères utiliser pour le développage/renveloppage de la tdm ?
var SommaireDeveloppable_CarDevelop = '[+]';
var SommaireDeveloppable_CarEnvelop = '[-]';
var SommaireDeveloppable_CarZevelop = '[×]';
 
// Bulles d'aide
var SommaireDeveloppable_BulDevelop = 'Cette section a des sous-sections, cliquez pour les voir';
var SommaireDeveloppable_BulEnvelop = 'Cliquez pour cacher les sous-sections';
var SommaireDeveloppable_BulZevelop = 'Cette section n’a pas de sous-sections';
 
/*------------------- hooke la fonction ----------------------------------------------*/
var NonAff = document.getElementById('SommaireDeveloppable_NON');
var OuiAff = document.getElementById('SommaireDeveloppable_OUI') || (mw.config.get('wgNamespaceNumber')===0);
if ( (!NonAff) && (OuiAff) ){
  addOnloadHook(SommaireDeveloppable_Main);
}
 
/*----------------- fonction principale ------------------------------------------*/
function SommaireDeveloppable_Main() {
 
// pour chaque niveau raisonnable de profondeur de table des matières
for (var level = 1; level < 7; level++){
  // récupérer la liste des éléments <li> de classe "toclevel-n"
  var lis = getElementsByClass( 'toclevel-' + level );
  if (lis.length==0) break; //inutile de continuer, il n'y a plus de niveau plus profond
 
  // pour chacun :
  for(var _i=0; _i<lis.length; _i++){
    var li = lis[_i];
    // vérifier que c’est bien un <li>
    if(li.tagName.toLowerCase() != 'li') continue;
 
    if(li.children.length>=2){
      var ul = li.children[1];
      // vérifier que son 2ème enfant est un <ul>
      if (ul.tagName.toLowerCase() != 'ul') continue;
      // lui ajouter (plus tard) un élément cliquable
      var plus = document.createElement ('a');
      // faire que si on clique dessus et que ul est visible, ça le cache, et vice versa
        plus.onclick=(function (ul,plus){
    	        return function (){
        	    if (ul.style.display=='none') {
                        ul.style.display='block';
                        plus.title=SommaireDeveloppable_BulEnvelop;
                        plus.innerHTML=SommaireDeveloppable_CarEnvelop;
                    } else {
                        ul.style.display='none';
                        plus.title=SommaireDeveloppable_BulDevelop;
                        plus.innerHTML=SommaireDeveloppable_CarDevelop;
                    }
                };
       })(ul,plus);
     // cacher par défaut, sauf pour le premier (pour faire la pub)

     if( (level==1) && (_i==0) && SommaireDeveloppable_PreDevelop ){
       ul.style.display='block';
       plus.title=SommaireDeveloppable_BulEnvelop;
       plus.innerHTML=SommaireDeveloppable_CarEnvelop;
     }else{
       ul.style.display='none';
       plus.title=SommaireDeveloppable_BulDevelop;
       plus.innerHTML=SommaireDeveloppable_CarDevelop;
     }
 
   }else{
     //sinon élément visuel qui prend autant d'espaces pour même largeur que + et -
     var plus=document.createElement('span');
     plus.title=SommaireDeveloppable_BulZevelop;
     plus.innerHTML=SommaireDeveloppable_CarZevelop;
   }
 
   // mettre cet élément en monoespacé pour que o - + aient la même largeur
   plus.style.fontFamily = 'courier, monospace, mono';
   plus.style.color='#000';
   plus.style.fontWeight='bold';
   plus.style.textDecoration='none';
   plus.style.cursor='pointer'; // curseur comme sur un hyperlien, puisque ça fait qqch
   // insérer le lien comme 1er nœud du <li> courant
   li.insertBefore(plus, li.firstChild);
 
  }//end "for _i"
}//end "for level"
 
//---- visibilité numérotation dans le sommaire ----
var spans = getElementsByClass( 'tocnumber' );
if (SommaireDeveloppable_Numerote){
  for (var _i=0; _i<spans.length; _i++) { spans[_i].style.display = "inline"; }
}else{
  for (var _i=0; _i<spans.length; _i++) { spans[_i].style.display = "none"; }
}
 
};