Utilisateur:Zoldik/monobook.js
Apparence
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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.function addContribLinkNearTalkPageInContributions() {
if ( mw.config.get('wgCanonicalSpecialPageName') != "Contributions" ) return //seulement actif dans special:contributions
var contribList = document.getElementById("bodyContent").getElementsByTagName("ul")[0].getElementsByTagName("li")
var a // sert pour les compteurs
var b // idem
var user =new Array()
for (a=0, b=0 ; a<contribList.length ; a++) {
if ( contribList[a].getElementsByTagName("a")[1].title.substring(0,23).toLowerCase() == "discussion utilisateur:" ) {
user[b++] = contribList[a].getElementsByTagName("a")[1].title.substring(23)
}
}
//alert( user.length )
var usersEditCount = get_editcounts( user )
//alert( usersEditCount.length ) //note: retourne 0 car tableau nommé :/
for (a=0 ; a<contribList.length ; a++) {
//verifier que c'est bien une page de discussion utilisateur:
if ( contribList[a].getElementsByTagName("a")[1].title.substring(0,23).toLowerCase() == "discussion utilisateur:" ) {
var user = contribList[a].getElementsByTagName("a")[1].title.substring(23)
//ajouter un lien vers les contribs de l'utilisateur
contribList[a].insertBefore( document.createTextNode( ' (' ) , null )
if ( usersEditCount[ user ] != 'N/A' ) { //cas des pages sans compte associé
var texte_contrib = $('<a>')
.attr('href', '/wiki/Special:Contributions/' + user)
.text(usersEditCount[ user ] + ' contrib' + (usersEditCount[user] > 1 ? "s" : "" ) )
.get(0);
} else {
var texte_contrib = document.createTextNode( 'pas de compte' )
}
texte_contrib.className = "contribLink"
contribList[a].insertBefore( texte_contrib, null )
contribList[a].insertBefore( document.createTextNode( ')' ) , null )
}
}
}
function get_editcounts(noms) {
var http_request;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
http_request = new XMLHttpRequest()
if (http_request.overrideMimeType)
http_request.overrideMimeType('text/xml')
} else {
alert("la partie editcount de addContribLinkNearTalkPageInContributions n'est pas compatible internet explorer")
return;
}
var address = "/w/api.php?format=xml&action=query&list=users&usprop=editcount&ususers=" + noms.join('|')
// alert(address)
http_request.open('GET', address , false)
http_request.send(null)
var users = http_request.responseXML.documentElement.getElementsByTagName("user")
var EditCount = new Array() //tableau des valeurs (nom user => editcount)
for (var a=0 ; a < users.length ; a++) {
//apparemment impossible de faire des clefs nommées, donc tant pis.
if( typeof( users[ a ].attributes['editcount'] ) != 'undefined' ) {
// alert(users[ a ].attributes['name'].value)
EditCount[ users[ a ].attributes['name'].value ] = users[a].attributes['editcount'].value
// alert(EditCount[ users[ a ].attributes['name'].value ])
} else { //cas d'une page de discussion utilisateur qui ne correspond pas à un compte (sinon ça plante)
EditCount[ users[ a ].attributes['name'].value ] = 'N/A'
}
}
// alert(EditCount.length)
return EditCount
}
addOnloadHook(addContribLinkNearTalkPageInContributions)
function youHaveANewInsultingMessage() {
div = document.body.getElementsByClassName("usermessage")[0]
if( !div) return
div.getElementsByTagName("img")[0].nextSibling.nodeValue = " Je viens "
a = div.getElementsByTagName("a")
a[0].firstChild.nodeValue = "t'emmerder"
a[1].firstChild.nodeValue = "diff"
}
addOnloadHook(youHaveANewInsultingMessage) // (ou ajoutez un appel dans votre function main(), si vous en avez une)
//importScript('User:EDUCA33E/LiveRC.js');
importScript('User:Argos42/LiveRC_ModA.js');
// [[:en:User:Lupin/popups.js]]
// Traduction de [[Utilisateur:Leag|Leag]] : [[Utilisateur:Leag/Navigation popups|Navigation popups]]
importScript('MediaWiki:Gadget-Popups.js');
//<nowiki>
/**
* Ajoute des liens après les catégories pour rapidement
* supprimer / modifier / ajouter une catégorie sur un article.
* Utilise Ajax et l'api MediaWiki pour rechercher une catégorie.
* Version adaptée pour WP:fr de [[:commons:MediaWiki:HotCat.js]]
*
* Auteur original : Magnus Manske
* Adaptation pour WP:fr : Zelda
* [[Catégorie:MediaWiki:Fonction Monobook en JavaScript]]
*/
// VARIABLES PERSONNALISABLES
// Suggestion delay in ms
var hotcat_suggestion_delay = 200;
// Taille de la liste déroulante (en items)
var hotcat_list_size = 10;
// Nombre de categories suggérées lors de la recherche
var hotcat_list_items = 50;
// Permet d'enregistrer automatiquement la modif sans repasser par la fenêtre d'édition
// var hotcat_autocommit = false;
// Permet d'afficher la liste de suggestion vers le bas
// var hotcat_list_down = false;
// FIN DE LA PERSONNALISATION DES VARIABLES
var hotcat_running = 0 ;
var hotcat_last_v = "" ;
var hotcat_exists_yes = "http://upload.wikimedia.org/wikipedia/commons/thumb/b/be/P_yes.svg/20px-P_yes.svg.png" ;
var hotcat_exists_no = "http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/P_no.svg/20px-P_no.svg.png" ;
if( mw.config.get('wgNamespaceNumber')%2 == 0 && document.URL.indexOf("printable=yes")==-1) addOnloadHook ( hotcat ) ;
function hotcat () {
if ( hotcat_check_action() ) return ; // Edited page, reloading anyway
var catlinks = document.getElementById("catlinks");
if (! catlinks) { // all except discussion
// let's create a fake one
var bodyC = document.getElementById("bodyContent");
catlinks = document.createElement("div");
catlinks.id = "catlinks";
catlinks.className = "catlinks";
catlinks = bodyC.appendChild(catlinks);
}
var catline = document.getElementById ('mw-normal-catlinks'); // Since MW 1.13alpha
if( !catline ) {
catline = catlinks.insertBefore(document.createElement("div"), catlinks.firstChild);
catline.id = "mw-normal-catlinks";
}
if ( catline == null || typeof catline == 'undefined' ) return ;
hotcat_modify_existing ( catline ) ;
hotcat_append_add_span ( catline ) ;
}
function hotcat_append_add_span ( catline ) {
var span_add = document.createElement ( "span" ) ;
var span_sep = document.createTextNode ( " | " ) ;
if ( catline.firstChild ) catline.appendChild ( span_sep ) ;
else {
var a = document.createElement('a');
a.href = '/wiki/Catégorie:Accueil';
a.title = 'Catégorie:Accueil';
a.appendChild(document.createTextNode('Catégories'));
catline.appendChild(a);
catline.appendChild(document.createTextNode(' : '));
}
catline.appendChild ( span_add ) ;
hotcat_create_span ( span_add ) ;
}
String.prototype.ucFirst = function () {
return this.substr(0,1).toUpperCase() + this.substr(1,this.length);
}
function hotcat_modify_span ( span , i ) {
var cat_title = span.firstChild.getAttribute ( "title" ) ;
// Removing leading Category:
cat_title = cat_title.substr(cat_title.indexOf(":") + 1);
var sep1 = document.createTextNode ( " " ) ;
var a1 = document.createTextNode ( "(–)" ) ;
var remove_link = document.createElement ( "a" ) ;
remove_link.href = "javascript:hotcat_remove(\"" + cat_title + "\");" ;
remove_link.appendChild ( a1 ) ;
span.appendChild ( sep1 ) ;
span.appendChild ( remove_link ) ;
var mod_id = "hotcat_modify_" + i ;
var sep2 = document.createTextNode ( " " ) ;
var a2 = document.createTextNode ( "(±)" ) ;
var modify_link = document.createElement ( "a" ) ;
modify_link.id = mod_id ;
modify_link.href = "javascript:hotcat_modify(\"" + mod_id + "\");" ;
modify_link.appendChild ( a2 ) ;
span.appendChild ( sep2 ) ;
span.appendChild ( modify_link ) ;
}
function hotcat_modify_existing ( catline ) {
var spans = catline.getElementsByTagName ( "span" ) ;
for ( var i = 0 ; i < spans.length ; i++ ) {
hotcat_modify_span ( spans[i] , i ) ;
}
}
function hotcat_remove ( cat_title ) {
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
if (window.confirm("Voulez-vous vraiment supprimer la catégorie '" + cat_title + "' ?")) {
document.location = editlk + '&hotcat_removecat=' + encodeURIComponent(cat_title) ;
}
}
function hotcatGetParamValue(paramName, h) {
if (typeof h == 'undefined' ) { h = document.location.href; }
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
var m=cmdRe.exec(h);
if (m) {
try {
return decodeURIComponent(m[1]);
} catch (someError) {}
}
return null;
}
function hotcat_check_action () {
var ret = 0 ;
if ( mw.config.get('wgAction') != "edit" ) return ret ; // Not an edit page, so no business...
var summary = new Array () ;
var t = document.editform.wpTextbox1.value ;
var prevent_autocommit = 1 ;
if ( typeof hotcat_autocommit != 'undefined' && hotcat_autocommit ) prevent_autocommit = 0 ;
// Remove existing category?
var hrc = hotcatGetParamValue('hotcat_removecat') ;
// Add new category?
var hnc = hotcatGetParamValue('hotcat_newcat') ;
if ( typeof hrc != "undefined" && hrc != null && hrc != "" ) {
var hcre = new RegExp("(\\s*)\\[\\[ *(?:Catégorie|Category) *: *" + hrc.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "gi");
var matches = t.match(hcre);
if (matches != null && matches.length == 1) { // Found one occurrence of the category - good!
if ( typeof hnc != "undefined" && hnc != null && hnc != "" ) {
t = t.replace(hcre, "$1[[Catégorie:" + hnc + "$2]]");
summary.push ( "Modification de la catégorie [[Catégorie:" + hrc + "]] → [[Catégorie:" + hnc + "]]" ) ;
} else {
t = t.replace(hcre, "");
summary.push ( "Retrait de la catégorie [[Catégorie:" + hrc + "]]" ) ;
}
ret = 1 ;
} else {
alert ( "Impossible de trouver une occurrence unique de \"" + hrc + "\" - elle est peut-être incluse via un modèle" ) ;
prevent_autocommit = 1 ;
}
} else {
// Only adding?
if ( typeof hnc != "undefined" && hnc != null && hnc != "" ) {
// Looking for last cat
var re = /\[\[(?:Catégorie|Category):[^\]]+\]\]/ig
var index = -1;
while (re.exec(t) != null) index = re.lastIndex;
var txt = "[[Catégorie:" + hnc + "]]" ;
if (index < 0) {
t = t + '\n' + txt ;
} else {
t = t.substring(0, index) + '\n' + txt + t.substring(index);
}
summary.push ( "Ajout rapide de la catégorie [[Catégorie:" + hnc + "]]" ) ;
ret = 1 ;
}
}
if ( ret ) {
document.editform.wpTextbox1.value = t ;
document.editform.wpSummary.value = summary.join( " ; " ) + " (avec [[MediaWiki:Gadget-HotCats.js|HotCats]])" ;
document.editform.wpMinoredit.checked = true ;
if ( !prevent_autocommit ) {
document.getElementById("bodyContent").style.display = "none" ; // Hiding the entire edit section so as not to tempt the user into editing...
document.editform.wpSave.click();
}
}
// This is the end, my friend, the end...
return ret ;
}
function hotcat_clear_span ( span_add ) {
while ( span_add.firstChild ) span_add.removeChild ( span_add.firstChild ) ;
}
function hotcat_create_span ( span_add ) {
hotcat_clear_span ( span_add ) ;
var a_add = document.createElement ( "a" ) ;
var a_text = document.createTextNode ( "(+)" ) ;
span_add.id = "hotcat_add" ;
a_add.href = "javascript:hotcat_add_new()" ;
a_add.appendChild ( a_text ) ;
span_add.appendChild ( a_add ) ;
}
function hotcat_modify ( link_id ) {
var link = document.getElementById ( link_id ) ;
var span = link.parentNode ;
var catname = span.firstChild.firstChild.data ;
while ( span.firstChild.nextSibling ) span.removeChild ( span.firstChild.nextSibling ) ;
span.firstChild.style.display = "none" ;
hotcat_create_new_span ( span , catname ) ;
hotcat_last_v = "" ;
hotcat_text_changed () ; // Update icon
}
function hotcat_add_new () {
var span_add = document.getElementById ( "hotcat_add" ) ;
hotcat_clear_span ( span_add ) ;
hotcat_last_v = "" ;
hotcat_create_new_span ( span_add , "" ) ;
}
function hotcat_create_new_span ( thespan , init_text ) {
var form = document.createElement ( "form" ) ;
form.method = "post" ;
form.onsubmit = function () { hotcat_ok(); return false; } ;
form.id = "hotcat_form" ;
form.style.display = "inline" ;
var list = document.createElement ( "select" ) ;
list.id = "hotcat_list" ;
list.onclick = function () { document.getElementById("hotcat_text").value = document.getElementById("hotcat_list").value ; hotcat_text_changed() ; } ;
list.ondblclick = function () { document.getElementById("hotcat_text").value = document.getElementById("hotcat_list").value ; hotcat_text_changed() ; hotcat_ok(); } ;
list.style.display = "none" ;
var text = document.createElement ( "input" ) ;
text.size = 40 ;
text.id = "hotcat_text" ;
text.type = "text" ;
text.value = init_text ;
text.onkeyup = function () { window.setTimeout("hotcat_text_changed();", hotcat_suggestion_delay ); } ;
var exists = document.createElement ( "img" ) ;
exists.id = "hotcat_exists" ;
exists.src = hotcat_exists_no ;
var OK = document.createElement ( "input" ) ;
OK.type = "button" ;
OK.value = "OK" ;
OK.onclick = hotcat_ok ;
var cancel = document.createElement ( "input" ) ;
cancel.type = "button" ;
cancel.value = "Annuler" ;
cancel.onclick = hotcat_cancel ;
form.appendChild ( list ) ;
form.appendChild ( text ) ;
form.appendChild ( exists ) ;
form.appendChild ( OK ) ;
form.appendChild ( cancel ) ;
thespan.appendChild ( form ) ;
text.focus () ;
}
function hotcat_ok () {
var text = document.getElementById ( "hotcat_text" ) ;
var v = text.value ;
// Empty category ?
if ( v == "" ) {
hotcat_cancel() ;
return ;
}
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
var url = editlk + '&hotcat_newcat=' + encodeURIComponent( v ) ;
// Editing existing?
var span = text.parentNode.parentNode ; // span.form.text
if ( span.id != "hotcat_add" ) { // Not plain "addition"
var cat_title = span.firstChild.innerHTML ;
// Removing leading Category:
cat_title = cat_title.substr(cat_title.indexOf(":") + 1);
url += '&hotcat_removecat=' + encodeURIComponent( cat_title ) ;
}
document.location = url ;
}
function hotcat_cancel () {
var span = document.getElementById("hotcat_form").parentNode ;
if ( span.id == "hotcat_add" ) {
hotcat_create_span ( span ) ;
} else {
while ( span.firstChild.nextSibling ) span.removeChild ( span.firstChild.nextSibling ) ;
span.firstChild.style.display = "" ;
for ( var i = 0 ; i < span.parentNode.childNodes.length ; i++ ) {
if ( span.parentNode.childNodes[i] != span ) continue ;
hotcat_modify_span ( span , i ) ;
break ;
}
}
}
function hotcat_text_changed () {
if ( hotcat_running ) return ;
var text = document.getElementById ( "hotcat_text" ) ;
var v = text.value.ucFirst() ;
if ( hotcat_last_v == v ) return ; // Nothing's changed...
hotcat_running = 1 ;
hotcat_last_v = v ;
if ( v != "" ) {
var url = mw.config.get('wgServer') + "/" + mw.config.get('wgScriptPath') + "/api.php?format=xml&action=query&list=allpages&apnamespace=14&apfrom=" + encodeURIComponent( v ) + "&aplimit=" + encodeURIComponent( hotcat_list_items );
if ( typeof ( hotcat_xmlhttp ) != "undefined" ) hotcat_xmlhttp.abort() ; // Just to make sure...
hotcat_xmlhttp = new XMLHttpRequest() ;
hotcat_xmlhttp.open('GET', url, true);
hotcat_xmlhttp.onreadystatechange = function () {
if ( typeof hotcat_xmlhttp == "undefined" ) return ;
if (hotcat_xmlhttp.readyState == 4) {
var xml = hotcat_xmlhttp.responseXML ;
if ( xml == null ) return ;
var pages = xml.getElementsByTagName( "p" ) ;
var titles = new Array () ;
for ( var i = 0 ; i < pages.length ; i++ ) {
var s = pages[i].getAttribute("title");
// Removing leading "Category:"
s = s.substr(s.indexOf(":") + 1);
if ( s.substr ( 0 , hotcat_last_v.length ) != hotcat_last_v ) break ;
titles.push ( s ) ;
}
hotcat_show_suggestions ( titles ) ;
}
};
hotcat_xmlhttp.send(null);
} else {
var titles = new Array () ;
hotcat_show_suggestions ( titles ) ;
}
hotcat_running = 0 ;
}
function hotcat_show_suggestions ( titles ) {
var text = document.getElementById ( "hotcat_text" ) ;
var list = document.getElementById ( "hotcat_list" ) ;
var icon = document.getElementById ( "hotcat_exists" ) ;
if ( titles.length == 0 ) {
list.style.display = "none" ;
icon.src = hotcat_exists_no ;
return ;
}
var listh = hotcat_list_size * 20 ;
if (titles.length < hotcat_list_size) {
listh = titles.length * 20 ;
}
var nl = parseInt ( text.parentNode.offsetLeft ) - 1 ;
var nt = parseInt(text.offsetTop) - listh ;
// Parameter to show suggestion list beneath categories instead of above
if (typeof hotcat_list_down != "undefined" && hotcat_list_down) {
nt = text.offsetTop + text.offsetHeight;
}
list.size = 5 ;
list.style.align = "left" ;
list.style.zIndex = 5 ;
list.style.position = "absolute" ;
list.style.top = nt + "px" ;
list.style.width = text.offsetWidth + "px" ;
list.style.height = listh + "px" ;
list.style.left = nl + "px" ;
while ( list.firstChild ) list.removeChild ( list.firstChild ) ;
for ( var i = 0 ; i < titles.length ; i++ ) {
var opt = document.createElement ( "option" ) ;
var ot = document.createTextNode ( titles[i] ) ;
opt.appendChild ( ot ) ;
opt.setAttribute( "value", titles[i] );
list.appendChild ( opt ) ;
}
list.style.display = "block" ;
icon.src = hotcat_exists_yes ;
var first_title = titles.shift () ;
if ( first_title == hotcat_last_v ) return ;
var suggestion = first_title;
text.value = suggestion ;
if (text.createTextRange) {
// IE
var ra = text.createTextRange();
ra.moveStart("character", hotcat_last_v.length);
ra.moveEnd("character", suggestion.length);
ra.select();
} else if( is_khtml ) {
text.setSelectionRange( hotcat_last_v.length, suggestion.length );
} else {
text.selectionStart = hotcat_last_v.length ;
text.selectionEnd = suggestion.length ;
}
}
//</nowiki>
importScript('User:Quentinv57/FastRevert.js');
obtenir('BandeauxPortails');
//<pre><nowiki>
/* ***************************************************************************************************************
Fonction : Renommage/vidage de catégorie
* Ajoute un onglet "renommer" en haut d'une page de catégorie.
* Détail du fonctionnement :
1. modification/retrait¹ automatique de lien catégorie dans les pages et les sous-catégories d'une catégorie;
2. si nécessaire² : copie du contenu de l'ancienne catégorie dans la nouvelle;
3. si nécessaire² : suppression de l'ancienne catégorie³;
¹ basé sur la partie "édition" du gadget [[Mediawiki:Gadget-Hotcats.js]], plusieurs pop-up permettent de définir les paramètres.
² après une pop-up de confirmation
³ si utilisateur sysop uniquement
* Documentation complète : [[Projet:JavaScript/Notices/RenommageCategorie]]
* Licence : Domaine public
******************************************************************************************************************* */
////////////////////////////////////////////// TEXTES ///////////////////////////
// Libellé de l'onglet
var RenommageCategorie_Text_Move = 'Renommer';
// Lien vers le script
var RenommageCategorie_Text_Script = '[[MediaWiki:Gadget-RenommageCategorie.js|Renommage de catégorie]]';
// Pop-up paramètres
var RenommageCategorie_Text_PopRemoveCat = 'Catégorie à supprimer';
var RenommageCategorie_Text_PopAddCat = 'Catégorie à ajouter';
var RenommageCategorie_Text_PopConfirm = 'Publier sans confirmation manuelle ?';
var RenommageCategorie_Text_PopWatch = 'Suivre les pages modifiées ?';
var RenommageCategorie_Text_PopButtonOKText = 'Valider';
var RenommageCategorie_Text_PopButtonOKTitle = 'Lancer les modifications';
var RenommageCategorie_Text_PopButtonCancelText = 'Annuler';
var RenommageCategorie_Text_PopButtonCancelTitle = 'Annuler';
// Résumés de modification
var RenommageCategorie_Text_ResumeEditModif = RenommageCategorie_Text_Script+" : Modification de la catégorie [[Catégorie:$1]] → [[Catégorie:$2]]";
var RenommageCategorie_Text_ResumeEditDelete = RenommageCategorie_Text_Script+" : Retrait de la catégorie [[Catégorie:$1]]";
var RenommageCategorie_Text_ResumeMove = RenommageCategorie_Text_Script+" : Transfert du contenu depuis [[:Catégorie:$1]]";
var RenommageCategorie_Text_ResumeDelete = RenommageCategorie_Text_Script+" : Catégorie remplacée par [[Catégorie:$2]]";
var RenommageCategorie_Text_ResumeDeleteBis = RenommageCategorie_Text_Script+" : Catégorie vide et obsolète";
// Pop-up de confirmation
var RenommageCategorie_Text_Modif = "Vous vous apprêtez à modifier $1 pages.\n\n"
+ "Continuer ?\n"; // Confirmation édition (<50 pages)
var RenommageCategorie_Text_GrosseModif = "Vous vous apprêtez à modifier $1 pages.\n"
+ "Cette action d'envergure devrait être effectuée de préférence par un bot.\n\n"
+ "Continuer quand même ?\n"; // Confirmation grosse édition (>50 pages)
var RenommageCategorie_Text_Delay = "(Un délai de $1 secondes s'écoulera entre deux modifications)";
var RenommageCategorie_Text_ConfirmEdit = "$1 -> $2\n\nRésumé de modification : $3"; // Confirmation édition
var RenommageCategorie_Text_ConfirmMove = "Recopier le contenu de $1 dans $2 ?"; // Copie
var RenommageCategorie_Text_ConfirmMoveBis = 'Publier la modification ?' // Confirmation Copie
var RenommageCategorie_Text_ConfirmDelete = "Supprimer la catégorie $1 ?"; // Suppression
// Pop-up lors d'un problème
var RenommageCategorie_Text_AlertSameCat = "Les catégories à supprimer et à ajouter sont identiques";
var RenommageCategorie_Text_AlertEditPb = "Impossible de trouver une occurrence unique de la catégorie $1\n\nElle est peut-être incluse via un modèle.\n";
var RenommageCategorie_Text_AlertEditTryAgain = 'Problème !\n\nRéessayer ?';
var RenommageCategorie_Text_AlertEditNextPage = 'Page suivante ?'
//////////////////////////////////////////////////////////////////////////////
// Variables par défaut
var RenommageCategorie_RemoveCat = mw.config.get('wgTitle'); // Catégorie à enlever
var RenommageCategorie_AddCat = mw.config.get('wgTitle'); // Catégorie à ajouter
var RenommageCategorie_Autoconfirm = false; // Publication automatique
var RenommageCategorie_AutoWatch = false; // Suivi automatique
var RenommageCategorie_TimeOut = 10; // Délai par défaut après publication
if(mw.config.get('wgNamespaceNumber')==14){
addOnloadHook(RenommageCategorie_AddLink);
}
function RenommageCategorie_AddLink(){
if(typeof(RenommageCategorie_LangCustom)=="function") RenommageCategorie_LangCustom();
if(typeof(RenommageCategorie_UserCustom)=="function") RenommageCategorie_UserCustom();
var OngletsCactions = document.getElementById('p-cactions');
if(OngletsCactions){
var CactionsUl = OngletsCactions.getElementsByTagName('ul')[0];
CactionsUl.innerHTML += '<li><a href="javascript:RenommageCategorie_OpenMenu();">'+RenommageCategorie_Text_Move+'</a></li>';
}
}
function RenommageCategorie_OpenMenu(){
if(document.getElementById('RenommageCategorie_Menu')) return;
var agt=navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
if(is_ie){
var LargeurEcran = parseInt(screen.width);
var HauteurEcran = parseInt(screen.height);
}else{
var LargeurEcran = parseInt(window.innerWidth);
var HauteurEcran = parseInt(window.innerHeight);
}
var Menu = document.createElement('div');
Menu.id='RenommageCategorie_Menu';
Menu.className ='RenommageCategorie_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= '120px';
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 = ''
+ '<input type="text" id="RemoveCat" value="'+mw.config.get('wgTitle')+'" disabled="disabled" size="50"/>'
+ '<label for="RemoveCat">'+RenommageCategorie_Text_PopRemoveCat+'</label>'
+ '<input type="text" id="AddCat" value="'+mw.config.get('wgTitle')+'" size="50" />'
+ '<label for="AddCat">'+RenommageCategorie_Text_PopAddCat+'</label>'
+ '<br />'
+ '<input type="checkbox" id="Autoconfirm" style="cursor:pointer;" />'
+ '<label for="Autoconfirm">'+RenommageCategorie_Text_PopConfirm+'</label>'
+ ' '
+ '<input type="checkbox" id="AutoWatch" style="cursor:pointer;" />'
+ '<label for="AutoWatch">'+RenommageCategorie_Text_PopWatch+'</label>'
+ '<br />'
+ '<br />'
+ '<center>'
+ '<input type="button" style="cursor:pointer;" '
+ ' value="'+RenommageCategorie_Text_PopButtonOKText+'" title="'+RenommageCategorie_Text_PopButtonOKTitle+'" '
+ ' onclick="RenommageCategorie_CheckMenu();" onselect="RenommageCategorie_CheckMenu();"/>'
+ ' '
+ '<input type="button" style="cursor:pointer;" '
+ ' value="'+RenommageCategorie_Text_PopButtonCancelText+'" title="'+RenommageCategorie_Text_PopButtonCancelTitle+'" '
+ ' onclick="RenommageCategorie_CloseMenu();" onselect="RenommageCategorie_CloseMenu();"/>'
+ '</center>'
Menu.innerHTML = MenuContent;
document.getElementById("AddCat").focus();
}
function RenommageCategorie_CloseMenu(){
var Menu = document.getElementById('RenommageCategorie_Menu');
if(Menu) RenommageCategorie_DeleteElement(Menu);
}
function RenommageCategorie_CheckMenu(){
var AddCat = document.getElementById('AddCat');
var Autoconfirm = document.getElementById('Autoconfirm');
var AutoWatch = document.getElementById('AutoWatch');
if( (!AddCat)||(!Autoconfirm)||(!AutoWatch) ) return;
RenommageCategorie_AddCat = AddCat.value;
if(RenommageCategorie_AddCat == RenommageCategorie_RemoveCat){
alert(RenommageCategorie_Text_AlertSameCat);
return;
}
if(Autoconfirm.checked) RenommageCategorie_Autoconfirm = true;
else RenommageCategorie_Autoconfirm = false;
if(AutoWatch.checked) RenommageCategorie_AutoWatch = true;
else RenommageCategorie_AutoWatch = false;
RenommageCategorie();
}
if( (mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)){
var RenommageCategorie_APILimit = 4999;
}else{
var RenommageCategorie_APILimit = 499;
}
if(mw.config.get('wgUserGroups').indexOf("bot")!=-1){
var RenommageCategorie_IsBot = true;
}else{
var RenommageCategorie_IsBot = false;
}
var RenommageCategorie_PageInCategory = new Array();
var RenommageCategorie_PageInCategoryCount = 0;
function RenommageCategorie(category, categorycontinue){
if(!category) category = mw.config.get('wgPageName');
if(!categorycontinue) categorycontinue = '';
var NouvelleRequete = new XMLHttpRequest()
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?format=xml&action=query&list=categorymembers&cmlimit='+RenommageCategorie_APILimit+'&cmtitle=' + category.replace(/&/g, "%26") + '&cmcontinue=' + categorycontinue;
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = NouvelleRequete.responseXML;
var Pages = ElementTraitement.getElementsByTagName('cm');
var AutreRequeteNecessaire = false;
for(a=0;a<Pages.length;a++){
var TitrePage = Pages[a].getAttribute('title');
RenommageCategorie_PageInCategory[RenommageCategorie_PageInCategoryCount] = TitrePage;
RenommageCategorie_PageInCategoryCount++
}
var CatContinue = ElementTraitement.getElementsByTagName('query-continue')[0];
if(CatContinue){
AutreRequeteNecessaire = true;
var AutreRequeteContinue = CatContinue.getElementsByTagName('categorymembers')[0].getAttribute("cmcontinue");
}
if(AutreRequeteNecessaire==true){
RenommageCategorie(category, AutreRequeteContinue);
}else{
if(!RenommageCategorie_IsBot){
if(RenommageCategorie_PageInCategoryCount<10) RenommageCategorie_TimeOut = (RenommageCategorie_TimeOut/2);
if(RenommageCategorie_PageInCategoryCount>50){
RenommageCategorie_TimeOut = (RenommageCategorie_TimeOut*2);
var Text = ''
+ RenommageCategorie_Text_GrosseModif.split('$1').join(RenommageCategorie_PageInCategoryCount)
+ RenommageCategorie_Text_Delay.split('$1').join(RenommageCategorie_TimeOut)
var GrosseModif = confirm(Text);
if(!GrosseModif) return;
}else{
if(RenommageCategorie_PageInCategoryCount>0){
var Text = ''
+ RenommageCategorie_Text_Modif.split('$1').join(RenommageCategorie_PageInCategoryCount)
+ RenommageCategorie_Text_Delay.split('$1').join(RenommageCategorie_TimeOut)
var Modif = confirm(Text);
if(!Modif) return;
}
}
}
RenommageCategorie_SortList();
}
}
}
NouvelleRequete.send(null);
}
var RenommageCategorie_SortedPageInCategory = new Array();
var RenommageCategorie_SortedPageInCategoryCount = 0;
function RenommageCategorie_SortList(){
var PagesTemp = RenommageCategorie_PageInCategory.sort();
for(var a=0;a<PagesTemp.length;a++){
if(PagesTemp[a]!=PagesTemp[(a+1)]){
RenommageCategorie_SortedPageInCategory[RenommageCategorie_SortedPageInCategoryCount] = PagesTemp[a];
RenommageCategorie_SortedPageInCategoryCount++
}
}
RenommageCategorie_AddBandeau(0);
}
function RenommageCategorie_AddBandeau(position){
var Page = RenommageCategorie_SortedPageInCategory[position];
if(!Page){
if(RenommageCategorie_AddCat!='') var CreateNewCat_SurEtCertain = confirm(RenommageCategorie_Text_ConfirmMove.split('$1').join(RenommageCategorie_RemoveCat).split('$2').join(RenommageCategorie_AddCat));
if(!CreateNewCat_SurEtCertain){
if(mw.config.get('wgUserGroups').indexOf('sysop')!=-1){
var DeleteOldCat_SurEtCertain = confirm(RenommageCategorie_Text_ConfirmDelete.split('$1').join(RenommageCategorie_RemoveCat));
if(DeleteOldCat_SurEtCertain) RenommageCategorie_DeleteOldCat();
}
}else{
RenommageCategorie_CreateNewCat();
}
return;
}
var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + Page.replace(/&/g, "%26") + '&action=edit';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", url, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
var ElementTraitement = document.createElement('div');
document.body.appendChild(ElementTraitement);
ElementTraitement.innerHTML = NouvelleRequete.responseText;
var TextArea = document.getElementById('wpTextbox1');
if(!TextArea){
var Problem = confirm( url + '\n\n' + RenommageCategorie_Text_AlertEditTryAgain );
if(Problem){
RenommageCategorie_AddBandeau(position);
}else{
var NextPage = confirm(RenommageCategorie_Text_AlertEditNextPage);
if(NextPage) RenommageCategorie_AddBandeau((position+1));
}
return;
}
var OldText = TextArea.value;
var Sommaire = '';
if ( RenommageCategorie_RemoveCat != "" ) {
var CatRegExp = new RegExp("(\\s*)\\[\\[ *(?:Catégorie|Category) *: *" + RenommageCategorie_RemoveCat.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "gi");
var matches = OldText.match(CatRegExp);
if (matches != null && matches.length == 1) { // Found one occurrence of the category - good!
if ( RenommageCategorie_AddCat != "" ) {
OldText = OldText.replace(CatRegExp, "$1[[Catégorie:" + RenommageCategorie_AddCat + "$2]]");
Sommaire = RenommageCategorie_Text_ResumeEditModif.split('$1').join(RenommageCategorie_RemoveCat).split('$2').join(RenommageCategorie_AddCat);
} else {
OldText = OldText.replace(CatRegExp, "");
Sommaire = RenommageCategorie_Text_ResumeEditDelete.split('$1').join(RenommageCategorie_RemoveCat);
}
} else {
var Suivante = confirm(RenommageCategorie_Text_AlertEditPb.split('$1').join(RenommageCategorie_RemoveCat) + RenommageCategorie_Text_AlertEditNextPage);
if(!Suivante){
window.location.reload();
}else{
RenommageCategorie_AddBandeau((position+1));
return;
}
}
}
var TexteFinal = OldText;
var SommaireFinal = Sommaire ;
document.getElementById('wpTextbox1').value = TexteFinal;
document.getElementById('wpSummary').value = SommaireFinal;
document.getElementById('wpMinoredit').checked = "checked";
if(RenommageCategorie_AutoWatch) document.getElementById('wpWatchthis').checked = "checked";
else document.getElementById('wpWatchthis').checked = "";
//document.editform.submit();
if(!RenommageCategorie_Autoconfirm){
var SurEtCertain = confirm(RenommageCategorie_Text_ConfirmEdit.split('$1').join(RenommageCategorie_RemoveCat).split('$2').join(RenommageCategorie_AddCat).split('$3').join(Sommaire));
if(!SurEtCertain){
var SurEtCertainBis = confirm(RenommageCategorie_Text_AlertEditNextPage);
if(!SurEtCertainBis){
window.location.reload();
return;
}else{
RenommageCategorie_AddBandeau((position+1));
return;
}
}
}
var action = document.getElementById("editform").action;
var boundary = '--------123xyz';
var data = '';
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + SommaireFinal + '\n'
if(RenommageCategorie_AutoWatch) data += '--' + boundary + '\nContent-Disposition: form-data; name="wpWatchthis"\n\n' + document.editform.wpWatchthis.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpMinoredit"\n\n' + document.editform.wpMinoredit.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'
var ajaxSubmit = new XMLHttpRequest();
ajaxSubmit.open('POST', action, true);
ajaxSubmit.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
ajaxSubmit.onreadystatechange = function(){
if (ajaxSubmit.readyState == 4){
while(document.body.firstChild){RenommageCategorie_DeleteElement(document.body.firstChild);}
var ElementTraitementBis = document.createElement('div');
document.body.appendChild(ElementTraitementBis);
ElementTraitementBis.innerHTML = ajaxSubmit.responseText;
if(!document.getElementById("editform")){
if(RenommageCategorie_IsBot) RenommageCategorie_AddBandeau((position+1));
if(!RenommageCategorie_IsBot) setTimeout("RenommageCategorie_AddBandeau("+(position+1)+")",RenommageCategorie_TimeOut*1000);
}else{
var DeuxiemeEssai = confirm(RenommageCategorie_Text_AlertEditTryAgain);
if(DeuxiemeEssai) RenommageCategorie_AddBandeau(position);
}
}
}
ajaxSubmit.send(data + '--' + boundary);
}
}
NouvelleRequete.send(null);
}
function RenommageCategorie_CreateNewCat(){
var urlNewCat = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + mw.config.get('wgFormattedNamespaces')[14]+':'+RenommageCategorie_AddCat.replace(/&/g, "%26") + '&action=edit';
var NouvelleRequeteNewCat = new XMLHttpRequest();
NouvelleRequeteNewCat.open("GET", urlNewCat, true);
NouvelleRequeteNewCat.onreadystatechange = function() {
if(NouvelleRequeteNewCat.readyState == 4 && NouvelleRequeteNewCat.status == 200) {
while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
var ElementTraitement = document.createElement('div');
document.body.appendChild(ElementTraitement);
ElementTraitement.innerHTML = NouvelleRequeteNewCat.responseText;
var TextArea = document.getElementById('wpTextbox1');
if(!TextArea){
var Problem = confirm( urlNewCat + '\n\n' + RenommageCategorie_Text_AlertEditTryAgain );
if(Problem){
RenommageCategorie_CreateNewCat();
}
return;
}
var urlOldCat = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + mw.config.get('wgFormattedNamespaces')[14] + ':' + RenommageCategorie_RemoveCat.replace(/&/g, "%26") + '&action=raw';
var NouvelleRequeteOldCat = new XMLHttpRequest();
NouvelleRequeteOldCat.open("GET", urlOldCat, true);
NouvelleRequeteOldCat.send(null);
NouvelleRequeteOldCat.onreadystatechange = function() {
if(NouvelleRequeteOldCat.readyState == 4 && NouvelleRequeteOldCat.status == 200) {
var TexteFinal = NouvelleRequeteOldCat.responseText
var SommaireFinal = RenommageCategorie_Text_ResumeMove.split('$1').join(RenommageCategorie_RemoveCat);
document.getElementById('wpTextbox1').value = TexteFinal;
document.getElementById('wpSummary').value = SommaireFinal;
document.getElementById('wpMinoredit').checked = "checked";
if(!RenommageCategorie_Autoconfirm){
var SurEtCertainNewCat = confirm(RenommageCategorie_Text_ConfirmMoveBis);
if(!SurEtCertainNewCat){
return;
}
}
var action = document.getElementById("editform").action;
var boundary = '--------123xyz';
var data = '';
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + SommaireFinal + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpWatchthis"\n\n' + document.editform.wpWatchthis.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpMinoredit"\n\n' + document.editform.wpMinoredit.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'
var ajaxSubmit = new XMLHttpRequest();
ajaxSubmit.open('POST', action, true);
ajaxSubmit.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
ajaxSubmit.onreadystatechange = function(){
if (ajaxSubmit.readyState == 4){
while(document.body.firstChild){RenommageCategorie_DeleteElement(document.body.firstChild);}
var ElementTraitementBis = document.createElement('div');
document.body.appendChild(ElementTraitementBis);
ElementTraitementBis.innerHTML = ajaxSubmit.responseText;
if(!document.getElementById("editform")){
if(mw.config.get('wgUserGroups').indexOf('sysop')!=-1){
var DeleteOldCat_SurEtCertain = confirm(RenommageCategorie_Text_ConfirmDelete.split('$1').join(RenommageCategorie_RemoveCat));
if(DeleteOldCat_SurEtCertain){
RenommageCategorie_DeleteOldCat();
}else{
window.location.reload;
return;
}
}
}else{
var DeuxiemeEssai = confirm(RenommageCategorie_Text_AlertEditTryAgain);
if(DeuxiemeEssai) RenommageCategorie_CreateNewCat();
}
}
}
ajaxSubmit.send(data + '--' + boundary);
}
}
}
}
NouvelleRequeteNewCat.send(null);
}
function RenommageCategorie_DeleteOldCat(){
var urlOldCat = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' +mw.config.get('wgFormattedNamespaces')[14]+':'+RenommageCategorie_RemoveCat.replace(/&/g, "%26") + '&action=delete';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", urlOldCat, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
var ElementTraitement = document.createElement('div');
document.body.appendChild(ElementTraitement);
ElementTraitement.innerHTML = NouvelleRequete.responseText;
var InputReason = document.getElementById('wpReason');
if(RenommageCategorie_AddCat==''){
InputReason.value = RenommageCategorie_Text_ResumeDeleteBis;
}else{
InputReason.value = RenommageCategorie_Text_ResumeDelete.split('$2').join(RenommageCategorie_AddCat);
}
var CheckWatch = document.getElementById('wpWatch');
CheckWatch.checked = '';
var DeleteForm = document.getElementById('deleteconfirm');
if(RenommageCategorie_Autoconfirm){
DeleteForm.submit();
}else{
var SurEtCertain = confirm(RenommageCategorie_Text_ConfirmDelete.split('$1').join(RenommageCategorie_RemoveCat));
if(SurEtCertain) DeleteForm.submit();
}
}
}
NouvelleRequete.send(null);
}
function RenommageCategorie_DeleteElement(OldElement){
var agt=navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
if(is_ie){
OldElement.removeNode(true);
}else{
if(OldElement.parentNode){document=OldElement.parentNode.removeChild(OldElement);}
}
}
// </nowiki></pre>
addOnloadHook(function (){document.getElementById("siteNotice").style.display = "none";});