Utilisateur:Zibeline/common.js

De Scoutopedia

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/*
*********************************************************************************
*********************************************************************************
POUR EDITEUR
*********************************************************************************
*********************************************************************************
*/


function counter_lsi() {
	var tt = document.getElementById('wpTextbox1').innerHTML;
	
	var count = (tt.split("{{Lien sur image").length - 1);  
	var count2 = (tt.split("{{lien sur image").length - 1);  
	
	count = count + count2
	
	document.getElementById('counterLSI').value = count;
}

function counter_br() {
	var tt = document.getElementById('wpTextbox1').innerHTML;

	var count = (tt.split("Liens interne").length - 1);  
	var count2 = (tt.split("<br clear=").length - 1);  
	
	var message = '0';

	if (count!=0 && count2==0) {
		message = "PAS OK";
	}
	
	document.getElementById('counterBR').value = message;
}

function replace_lsi() {
	var tt = document.getElementById('wpTextbox1').innerHTML;

	tt = tt.replace(/{{Lien sur image\|image\=([\s\S]*?)largeur\=([\s\S]*?)\|hauteur=([\s\S]*?)\|([\s\S]*?)}}/g, '[[Image:$1$2|$4]]');

	document.getElementById('wpTextbox1').innerHTML = tt;
}

function mineure() {
	document.getElementById('wpMinoredit').checked = 'true';
}

function setFocus(id) {
	document.getElementById(id).focus();
}

function focusR() {
	setFocus('wpSummary');
}


function toolboxer() {
/* ***** PARTIE BOITE A OUTILS ***** */

var myToolbox = '<b>Boite à outils personnalisée</b><br />'; // Titre et début de la boite à outils

/* ~~ Commandes de notre boite à outils ~~ */

/*
Pour ajouter une commande :
- Copier-coller une ligne de commande
- Modifier le texte du lien (juste avant la partie "</a>")
- Modifier le texte a inclure (juste après "insertTags")
  - Le 1e argument sera ajouté avant la position du curseur
  - Le 2e argument sera ajouté après la position du curseur
  - Le 3e argument sera ajouté à la position du curseur et sera sélectionné
*/

myToolbox += '<b>Chants : </b>';
myToolbox += '<a href="#" onclick="insertTags(\'<br clear=&quot;all&quot; />\',\'\',\'\');return false">BR</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'==Liens internes==\n\tCe chant a notamment été publié dans :\n\t\',\'\',\'\');return false">=L E=</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier saisons}}\',\'\',\'\');return false">Saisons</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier hodari}}\',\'\',\'\');return false">Hodari</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier chanteloup}}\',\'\',\'\');return false">Chanteloup</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier diapason bleu}}\',\'\',\'\');return false">Dia bleu</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier diapason rouge volume 1}}\',\'\',\'\');return false">Dia rouge v1</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier faidoli}}\',\'\',\'\');return false">Faidoli</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier tiouli}}\',\'\',\'\');return false">Tiouli</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier ptit romand}}\',\'\',\'\');return false">Ptit romand</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier chantecler}}\',\'\',\'\');return false">Chantecler</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier des éclaireurs}}\',\'\',\'\');return false">Ch des éclaireurs</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier montjoie}}\',\'\',\'\');return false">Montjoie</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier chansons du jamboree}}\',\'\',\'\');return false">Chansons du jambo</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier chantons les scouts}}\',\'\',\'\');return false">chantons les scouts</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier encyclopédie du ménestrel}}\',\'\',\'\');return false">Encyclo ménes</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier olifant}}\',\'\',\'\');return false">Olifant</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'{{chansonnier tempo}}\',\'\',\'\');return false">Tempo</a> - ';

myToolbox += '<br /><b>Wikification - lien sur image : </b>';
myToolbox += '<a href="#" onclick="insertTags(\'[[Image:\',\'\',\'\');return false">[[Image:</a> - ';
myToolbox += '<a href="#" onclick="insertTags(\'|lien=\',\'\',\'\');return false">|lien=</a> - ';


// **************************************************************************
/* ***** PARTIE RESUME MODIFS ***** */

var summary = document.getElementById('wpSummaryLabel'); // Sélectionne l'élément ou on va ajouter nos résumés "tout fait"

var modifSummary = 'Type de modif : '; // Début / introduction


/* ~~ Commandes de nos résumés ~~ */

/*
Pour ajouter une commande :
- Copier-coller une ligne de commande
- Modifier le texte du lien (juste avant la partie "</a>")
- Modifier le texte du résumé (juste après "value +=", entre les \' )
*/
modifSummary += '<a href="#" onclick="document.getElementById(\'wpSummary\').value += \'Wikification : \';mineure();focusR();return false">Wikification</a> - ';
modifSummary += '<a href="#" onclick="document.getElementById(\'wpSummary\').value += \'Liens internes\';return false">Liens internes</a> - ';
modifSummary += '<a href="#" onclick="document.getElementById(\'wpSummary\').value += \'Wikification : lien sur image\';mineure();return false">Lien sur image</a> - ';
modifSummary += '<a href="#" onclick="document.getElementById(\'wpSummary\').value += \'Wikification : lien sur année\';mineure();return false">Lien sur année</a> - ';
modifSummary += '<a href="#" onclick="document.getElementById(\'wpSummary\').value += \'MAJ lien mort\';mineure();return false">MAJ lien mort</a> - ';

// Ajoute nos résumés "tout fait"
summary.innerHTML += '&nbsp;&nbsp&nbsp<span class="personnalToolbox" style="padding: 0px;">'+modifSummary+'</span>';

// **************************************************************************
/* ***** Compteurs et alertes automatiques ***** */

var countersDisplay = '<b>Compteurs et alertes automatiques :</b><br /><br />';

countersDisplay += '<div class="counterDisplay">LSI : <br /><br /><input type="text" size="5" id="counterLSI"></div>';
countersDisplay += '<div class="counterDisplay">BR + Liens : <br /><br /><input type="text" size="5" id="counterBR"></div>';


// **************************************************************************
/* ***** Remplaceurs automatiques ***** */

var replacersDisplay = '<b>Remplaceurs automatiques :</b><br /><br />';

replacersDisplay += '<input type="button" onclick="replace_lsi();" value="Replace LSI">';


// **************************************************************************
// Ajoute notre nouvelle boite à outils ET nos compteurs automatiques ET nos remplaceurs automatiques
var elem = document.getElementById('editpage-copywarn'); // Sélectionne l'élément ou on va insérer notre boite a outils
elem.innerHTML = '<br /><div class="personnalToolbox">'+myToolbox+'</div><br /><div class="personnalToolbox">'+countersDisplay+'</div><br /><div class="personnalToolbox">'+replacersDisplay+'</div><br />'+elem.innerHTML;

counter_lsi();
counter_br();
}

try {
toolboxer();
} catch(err) {
console.log("Toolboxer failed");
}


/*
Améliorations :
- onkey pour les compteurs
- une seule fonction compteur
- ajouter autres compteurs
- couleurs compteurs
- raccourcis clavier
- replace auto
*/


/*
*********************************************************************************
*********************************************************************************
AUTRES: POUR NAVIGATION GENERALE
*********************************************************************************
*********************************************************************************
*/


// Ajoute un lien "Chant au hasard" qui permet d'afficher un chant au hasard ( :o non, vraiment :o)

try {
var dd = document.getElementById('p-Contribuer').getElementsByTagName('ul')[0];

dd.innerHTML += '<li id="n-randomSong"><a title="Afficher un chant au hasard" href="/index.php?title=Spécial:RandomInCategory&category=Chant">Chant au hasard</a></li>';
} catch(err) {
console.log("'Chant au hasard' failed");
}




// Ajoute un lien pour rechercher un chant sur YT

try {
var cat = document.getElementById('mw-normal-catlinks').innerHTML;

var head = document.getElementById('firstHeading');

var title = head.getElementsByTagName('span')[0].innerHTML;

if(cat.search('Chant')!=-1 && cat.search('MP3') == -1) {
    head.innerHTML += '<a class="perso_ytsearch" href="http://www.youtube.com/user/RobertBadenPowell/search?query='+title+'" target="_blank">Chercher sur YT</a>';
} 
} catch(err) {
console.log('YT search link failed');
}












// Boutton importation pour importer un article depuis un autre wiki

function getXMLHttpRequest() {
    var xhr = null;
	
    if (window.XMLHttpRequest || window.ActiveXObject) {
        if (window.ActiveXObject) {
            try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch(e) {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
        } 
        else {
            xhr = new XMLHttpRequest(); 
        }
    } 
    else {
        alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
        return null;
    }
    return xhr;
}

function loadWiki() {
    var url = prompt("Saisissez l'adresse de l'article que vous souhaitez importer (attention, il doit bien s'agir d'un wiki) :", "http://fr.wikipedia.org/wiki/");

    url = url.split("/");
    var title = url.splice(url.length-1, 1);
    var baseurl = url.join("/");

    var xhr = getXMLHttpRequest();
    xhr.onreadystatechange = function() {if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { gotWiki(xhr.responseText);}};
    xhr.open("GET", "http://fr.scoutwiki.org/index.php?title="+title+"&action=raw", true);
    xhr.send(null);
}

function gotWiki(sData) {
	insertTags(sData, '', '');
}

try {
var element = document.getElementById('editpage-copywarn'); 
element.innerHTML = '<br /><input type="button" value="Importer un article" title="Importer un article depuis un autre Wiki" onclick="loadWiki()"><br />'+element.innerHTML;
} catch(err) {
console.log("Impossible d'ajouter le bouton d'importation. L'utilisateur n'est probablement pas sur une page d'édition");
}