Utilisateur:VanBrooken/AjouterSectionRefs.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./* **********************************************************************************************************************
AjouterSectionRefs
Permet d'ajouter une section Notes et références rapidement, en un click sur le lien "Ajout section refs" dans la section "plus" à côté des historiques.
Texte ajouté à l'article :
== Notes et références ==
{{Références}}
{{Projet:JavaScript/Script}}
*********************************************************************************************************************** */
// ====================================================================================================================
// DEBUT DU CODE
// ====================================================================================================================
// <syntaxhighlight lang=javascript><pre><nowiki>
/////////////////////////////////////////////////////////////////////////////////// Variables personnalisables
// Publication automatique
if(typeof window.Section_AutoEdit === 'undefined') window.Section_AutoEdit = true;
// Modification mineure
if(typeof window.Section_MinorEdit === 'undefined') window.Section_MinorEdit = true;
// Ajout à la liste de suivi ( -1 = défaut préférences, 0 = jamais, 1 = toujours)
if(typeof window.Section_Watchthis === 'undefined') window.Section_Watchthis = -1;
/////////////////////////////////////////////////////////////////////////////////// Édition
var Section_ajax = {
http: function(bundle) {
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false;
}
}
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4)
Section_ajax.httpComplete(xmlhttp,bundle);
};
xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async == false ? false : true);
if (bundle.headers) {
for (var field in bundle.headers)
try {
xmlhttp.setRequestHeader(field,bundle.headers[field]);
} catch(err) { }
}
xmlhttp.send(bundle.data ? bundle.data : null);
}
return xmlhttp;
},
httpComplete: function(xmlhttp,bundle) {
if (xmlhttp.status == 200 || xmlhttp.status == 302) {
if (bundle.onSuccess) bundle.onSuccess(xmlhttp,bundle);
} else if (bundle.onFailure) {
bundle.onFailure(xmlhttp,bundle);
}
}
};
function Section_DoEdit(Req, data){
while(document.body.firstChild){ document.body.removeChild(document.body.firstChild); }
document.body.innerHTML = Req.responseText;
var TextArea = document.getElementById('wpTextbox1');
if(!TextArea) return;
if(Section_AutoEdit) document.editform.style.display = "none";
var OldText = TextArea.value;
if((OldText.indexOf('{{Références')!=-1) || (OldText.indexOf('<references />')!=-1) || (OldText.indexOf('<references/>')!=-1)){
alert('Une balise références existe déjà');
document.editform.style.display = "";
return;
}else{
var NouveauModele = '== Notes et références ==\n{{Références}}\n\n';
var Sommaire = 'Ajout de section Notes et références';
if((OldText.indexOf('{{DEFAULTSORT:')!=-1)||(OldText.indexOf('[[Catégorie:')!=-1)||(OldText.indexOf('[[catégorie:')!=-1)||(OldText.indexOf('[[Categorie:')!=-1)||(OldText.indexOf('[[categorie:')!=-1)||(OldText.indexOf('{{Portail')!=-1)||(OldText.indexOf('{{portail')!=-1)||(OldText.indexOf('{{Palette')!=-1)||(OldText.indexOf('{{palette')!=-1)||(OldText.indexOf('{{page personnelle')!=-1)){
// ------------------------------------------------------------------------------------ Il y a des catégories/portails/palettes
var DebutModele1 = OldText.substring(0, OldText.indexOf('{{Palette'));
var DebutModele2 = OldText.substring(0, OldText.indexOf('{{palette'));
var DebutModele3 = OldText.substring(0, OldText.indexOf('{{Portail'));
var DebutModele4 = OldText.substring(0, OldText.indexOf('{{portail'));
var DebutModele5 = OldText.substring(0, OldText.indexOf('{{DEFAULTSORT:'));
var DebutModele6 = OldText.substring(0, OldText.indexOf('[[Catégorie:'));
var DebutModele7 = OldText.substring(0, OldText.indexOf('[[catégorie:'));
var DebutModele8 = OldText.substring(0, OldText.indexOf('[[Categorie:'));
var DebutModele9 = OldText.substring(0, OldText.indexOf('[[categorie:'));
var DebutModele10 = OldText.substring(0, OldText.indexOf('{{page personnelle'));
//TODO a refactorer
var SuiteModele = OldText.split(DebutModele1).join('').split(DebutModele2).join('').split(DebutModele3).join('').split(DebutModele4).join('').split(DebutModele5).join('').split(DebutModele6).join('').split(DebutModele7).join('').split(DebutModele8).join('').split(DebutModele9).join('').split(DebutModele10).join('');
var DebutModele = OldText.split(SuiteModele).join('');
}else{
// ------------------------------------------------------------------------------------ Il n'y a pas de catégories/portails/palettes
var interWiki = new RegExp('^\\s*\\[\\[([a-z][a-z].?(x?-[^\\]]+)?|simple|tokipona):([^\\]]*)\\]\\]\\s*$');
var blank = new RegExp('^\\s*$');
var lines = OldText.split('\n');
var DebutModele = '';
var SuiteModele = '';
var FoundInterwiki = false;
for (var lineId = lines.length - 1; lineId >= 0; --lineId){
if (!interWiki.exec(lines[lineId]) && !blank.exec(lines[lineId])){
DebutModele = lines.slice(0, lineId + 1).join('\n');
SuiteModele = lines.slice(lineId + 1).join('\n');
break;
}
}
DebutModele = DebutModele + '\n\n';
while(SuiteModele.indexOf('\n\n')!=-1){
SuiteModele = SuiteModele.split("\n\n").join("\n");
}
SuiteModele = SuiteModele.replace(/^\n/, "");
}
}
var TexteFinal = DebutModele + NouveauModele + SuiteModele;
var SommaireFinal = Sommaire + ' ; avec [[Utilisateur:Prométhée/AjouterSectionRefs.js|AjouterSectionRefs]] #AjouterSectionRefs';
document.getElementById('wpMinoredit').checked = Section_MinorEdit;
if(Section_Watchthis==1) document.getElementById('wpWatchthis').checked = "checked";
if(Section_Watchthis==0) document.getElementById('wpWatchthis').checked = false;
document.getElementById('wpTextbox1').value = TexteFinal;
document.getElementById('wpSummary').value = SommaireFinal;
if(Section_AutoEdit)document.editform.submit();
}
function Section_Edit(){
var URL = mw.config.get( 'wgServer' ) + mw.config.get( 'wgScript' ) + "?title=" +encodeURIComponent(mw.config.get( 'wgPageName' )) + "&action=edit";
Section_ajax.http({url : URL,
onSuccess : Section_DoEdit,
});
/*if(document.getElementById('AjouterSectionRefs_Menu')) return;
var LargeurEcran;
var HauteurEcran;
var agt=navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
if (is_ie) {
LargeurEcran = parseInt(screen.width);
HauteurEcran = parseInt(screen.height);
} else {
LargeurEcran = parseInt(window.innerWidth);
HauteurEcran = parseInt(window.innerHeight);
}
var Menu = document.createElement('div');
Menu.id='AjouterSectionRefs_Menu';
Menu.className ='AjouterSectionRefs_Menu';
Menu.style.position='fixed';
Menu.style.zIndex= 500;
Menu.style.padding='5px';
Menu.style.backgroundColor='white';
Menu.style.border='3px double black';
Menu.style.width= '450px';
Menu.style.height= '100px';
document.body.appendChild(Menu);
PositionGauche = parseInt((LargeurEcran-Menu.clientWidth)/2) ;
PositionHaut = parseInt((HauteurEcran-Menu.clientHeight)/3) ;
Menu.style.left=PositionGauche + 'px';
Menu.style.top=PositionHaut + 'px';
var MenuContent = ''
+ '<label for="TailleRef">Taille : </label>'
+ '<input type="text" id="TailleRef" value="30" disabled="disabled" size="3"/>'
+ '<br />'
+ '<input type="button" style="cursor:pointer;" '
+ ' value="Valider" title="Valider" '
+ ' onclick="ValiderAvecTaille();" onselect="ValiderAvecTaille();"/>'
+ '</center>';
Menu.innerHTML = MenuContent;
document.getElementById("TailleRef").focus();*/
};
window.Section_AddOne = function(){
var OngletsCactions = document.getElementById('p-cactions');
if(OngletsCactions){
var CactionsUl = OngletsCactions.getElementsByTagName('ul')[0];
CactionsUl.innerHTML += '<li id="ref-add"><a href="javascript:Section_Edit();">Ajout section refs</a></li>';
$(OngletsCactions).removeClass("emptyPortlet");
}
};
/////////////////////////////////////////////////////////////////////////////////// Fonctions actives au chargement de la page
function AjouterSectionRefs(){
var Homonymie = document.getElementById("homonymie");
var Pagesliees = document.getElementById("t-whatlinkshere");
if( Homonymie || !Pagesliees) return;
Section_AddOne();
}
if ( ( mw.config.get( 'wgAction' ) === 'view' || mw.config.get( 'wgAction' ) === 'purge' ) && (mw.config.get( 'wgNamespaceNumber' ) === 0 || mw.config.get( 'wgNamespaceNumber' ) === 2)) {
$( AjouterSectionRefs );
}
//</nowiki></pre>
// ====================================================================================================================
// FIN DU CODE
// ====================================================================================================================
//</syntaxhighlight>