Utilisateur:Daehan/common.js

Dans l'article de Utilisateur:Daehan/common.js, nous allons aborder un sujet très pertinent et d'actualité qui a un impact significatif sur différents domaines de la vie quotidienne. Utilisateur:Daehan/common.js est un sujet qui a suscité un grand intérêt en raison de son impact sur la société et sur le développement social, économique et culturel, entre autres aspects. Tout au long de cet article, nous explorerons différentes perspectives et points de vue qui nous permettront de comprendre en profondeur l'importance de Utilisateur:Daehan/common.js dans le contexte actuel. De plus, nous analyserons différentes études de cas, recherches et tendances liées à Utilisateur:Daehan/common.js dans le but de fournir une vision complète et actualisée de ce sujet très pertinent. Sans aucun doute, Utilisateur:Daehan/common.js est une question qui mérite d’être analysée et débattue sous différentes approches et cet article se veut un guide fondamental pour la comprendre dans son intégralité.
// =============================================================
// Script d'Orlodrim pour évaluer les articles qui ont un 
// portail, mais pas d'évaluation du projet correspondant en pdd
// =============================================================

importScript('User:Orlodrim/portail-eval.js');

// =============================================================
// Liens dans le menu latéral "Général"
// =============================================================

$(function() {
	mw.util.addPortletLink(
		'p-tb',
		'//fr.wikipedia.orghttps://wikifreehand.com/fr/Utilisateur:Daehan/Brouillon',
		'Brouillon'
	);
});

// =============================================================
// ImageMapEdit
// https://meta.wikimedia.orghttps://wikifreehand.com/fr/User:Dapete/ImageMapEdit#English
// =============================================================

if (mw.config.get('wgNamespaceNumber')==6 && mw.config.get('wgAction')=='view') {
	mw.loader.load('//tools.wmflabs.org/imagemapedit/ime.js');
}

// =============================================================
// Enrouler/dérouler les sections
// https://darkoneko.wordpress.com/2010/03/08/personnalisons-wikipedia-enroulerderouler-des-sections/
// =============================================================

/* Cette fonction ajoute un "onclick" sur chaque titre, qui lancera un appel à toggleTitle() lors d'un clic sur ceux ci */
function ImplementToggleOnclick() {

   for( var titleLevel = 1 ; titleLevel < 7 ; titleLevel++) {
      var titleList = document.getElementsByTagName('h' + titleLevel)
      var nb = titleList.length
      for( var b = 0 ; b < nb ; b++) {
          titleList.setAttribute('onclick', "toggleTitle(this)");
      }
   }
}
$(ImplementToggleOnclick)

/* Cette fonction, quand invoquée, fait disparaitre ou réaparaitre le contenu placé sous un titre jusqu'au prochain titre de niveau egal ou supérieur
(= un h3 s'arrete au prochain h2 ou h3 mais continuera s'il rencontre un h4 ou h5) */
function toggleTitle(p_this) {
  var p_niveau = p_this.nodeName.substring(1,2) //le 1 de h1 (ou 2 de h2, etc.)

  //construction de l'expression reguliere permettant le trouver le prochain titre de niveau égal ou supérieur
  var stopMatch = "(h1"
  for(var a = 2 ; a <= p_niveau ; a++)  {
    stopMatch += "|h"+a
  }
  stopMatch += ")"
  reg = new RegExp(stopMatch, "i" )

  //on ajoute une classe (neko_toggle_cache) au titre pour savoir s'il est en mode replié
  if( p_this.className != "neko_toggle_cache") { //il faut  replier
     p_this.className = "neko_toggle_cache"
     var display_to_put = "none"
  } else { //il faut faire déplier
     p_this.className = ""
     var display_to_put = "block"
  }

  var nextSiblingNode = p_this.nextSibling

  while( nextSiblingNode ) {
     if(  nextSiblingNode.nodeName.match(reg) ) break; //on a atteint le titre "bloquant" suivant = stop

     if( nextSiblingNode.style) { //certains nodes sont des nodes texte et n'ont pas de style.
        nextSiblingNode.style.display = display_to_put
        if( nextSiblingNode.className = "neko_toggle_cache") nextSiblingNode.className = "" // x
     }
     nextSiblingNode = nextSiblingNode.nextSibling //on passe au voisin suivant
  }
}

// ==========================================================================
// Ajoute un élément « Vérifier renvoi biblio. » dans le menu/onglet « Plus »
// ==========================================================================

importScript('Utilisateur:Lgd/refErrors/refErrors.js') ;

// ReferenceTooltips
mw.loader.load( "/w/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&action=raw&ctype=text/javascript" );

// ==========================================================================
// Script d'affichage et édition des courtes descriptions sur Wikidata
// ==========================================================================

mw.loader.getScript( 'https://en.wikipedia.org/w/load.php?modules=ext.gadget.libSettings' ).then( function() {
	mw.loader.load( 'https://en.wikipedia.org/w/load.php?modules=ext.gadget.Shortdesc-helper' );
})