Utilisateur:Everhard/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 addArticleTrafficStatistics()
{
var histo = document.getElementById("ca-history");
if(histo)
{
var lien = document.createElement("a");
var today = new Date();
var annee = today.getYear() + 1900;
var mois = new String(today.getMonth() + 1);
if(mois.length < 2)
{
mois = "0" + mois;
}
lien.setAttribute("href", "http://stats.grok.se/fr/" + annee + mois + "/" + mw.config.get('wgPageName'));
lien.appendChild(document.createTextNode("Consultation"));
var stats = document.createElement("li");
stats.setAttribute("id", "ca-stats");
stats.appendChild(lien);
histo.parentNode.insertBefore(stats, histo.nextSibling);
}
}
$(addArticleTrafficStatistics);
/**
* BlockLogById
*
* Cette fonction permet de connaître les détails d'un blocage
* en fonction de son numéro identifiant.
*
* Un lien est rajouté dans la boîte de recherche
*
* Auteurs : Pabix
* Date de dernière révision : 24 mai 2007
* {{Catégorisation JS}}
*/
function BlockLogById(){
var link=document.createElement("a");
link.innerHTML="blocage #";
link.onclick=function(){
var id=prompt("identifiant de blocage");
document.location = "http://fr.wikipedia.org/w/index.php?title=Special%3AIpblocklist&ip=%23"+id+"";
}
var searchBody=document.getElementById("searchBody");
searchBody.appendChild(link);
}
$(BlockLogById);
/**
* '''Dernière contribution'''
*
* Indique au chargement de la page si la page a été édité depuis moins de xx temps
* (sert à éviter les conflits de modification éventuels)
*
* Auteur : Seb35
* Date de la dernière révision : 18 mai 2007
* {{Catégorisation JS}}
*/
////////////////////// ZONE PERSONNALISABLE //////////////////////
// Les temps sont en secondes
var lastContribNiveau1 = 100; // Niveau d'alerte très fort
var lastContribNiveau2 = 8*60; // Niveau d'alerte fort
var lastContribNiveau3 = 40*60; // Niveau d'alerte moyen
///////////////// FIN DE LA ZONE PERSONNALISABLE /////////////////
function lastContrib()
{
var texte = document.getElementById('lastmod');
if(!texte) return;
texte = texte.innerHTML.toString();
var resultat = texte.match(/page le ([0-9]{1,2}) ([a-zéû]*) ([0-9]{4}) à (([0-9]{2}):([0-9]{2}))/);
function moisFromMot(mot)
{
var d = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
for(var i=0; i<12; i++)
if(mot == d[i]) return i;
}
var last = new Date(Number(resultat[3]), Number(moisFromMot(resultat[2])), Number(resultat[1]), Number(resultat[5]), Number(resultat[6]));
var now = new Date();
var diff = Math.round((now - last)/1000);
var tit = document.getElementById('contentSub');
if(diff <= lastContribNiveau3)
{
if(diff < -600) { tit.innerHTML = 'Erreur probable dans la concordance des horloges : heure serveur = ' + last + ' >> heure client = ' + now + ' - ' + tit.innerHTML; return; }
if(diff < 0) diff = 0;
var diffHeures = Math.floor(diff/3600);
var diffMinutes = Math.floor((diff - diffHeures * 3600)/60);
var diffSecondes = diff - diffHeures * 3600 - diffMinutes * 60;
tit.innerHTML = '<span style="font-size:8pt;">' + resultat[4] + ' (<a href="http://fr.wikipedia.org/wiki/' + mw.config.get('wgPageName') + '?action=history"><span style="' + (diff <= lastContribNiveau2 ? 'color:red;' : 'color:black;') + (diff <= lastContribNiveau1 ? ' text-decoration:underline overline;">' : '">') + (diffHeures > 0 ? diffHeures + 'h' : '') + (diffMinutes > 0 ? diffMinutes + 'm' : '') + diffSecondes + 's</span></a>)</span> ' + tit.innerHTML;
}
}
$(lastContrib);
//<nowiki>
/*
* MagnusEditBox (basé sur Less edit clutter de Magnus Manske
* [[en:User:Magnus_Manske/less_edit_clutter.js]])
*
* Divise le fenêtre d'édition en plusieurs fenêtres : une fenêtre pour l'en-tête (infobox, image),
* une fenêtre pour l'article en lui même, une fenêtre pour les catégories, une fenêtre pour les
* interwikis et une fenêtre pour les références
*
* Auteur : Magnus Manske
* Dernière révision : 8 janvier 2009
*/
if ( ( mw.config.get('wgAction') == "submit" || mw.config.get('wgAction') == "edit" ) && mw.config.get('wgNamespaceNumber') == 0 ) {
addOnloadHook ( less_edit_clutter_init ) ;
}
var lec_sort_category = false;
var lec_parse_references = 0 ;
var lec_parent ;
var lec_tb1 ;
var lec_original ;
var lec_tb_top ;
var lec_tb_ill ;
var lec_tb_cat ;
var lec_tb_bt ;
var lec_tb_ref ;
var lec_active ;
var lec_last_edited = null ;
function less_edit_clutter_init () {
lec_active = 1 ;
less_edit_clutter_create_elements () ;
less_edit_clutter_hook_button ( 'wpSave' ) ;
less_edit_clutter_hook_button ( 'wpPreview' ) ;
less_edit_clutter_hook_button ( 'wpDiff' ) ;
less_edit_clutter_parse_main_textbox () ;
}
function less_edit_clutter_insert_at_cursor ( field , value ) {
if (document.selection) {
field.focus();
sel = document.selection.createRange();
sel.text = value;
} else if (field.selectionStart || field.selectionStart == '0') {
var startPos = field.selectionStart;
var endPos = field.selectionEnd;
field.value = field.value.substring(0, startPos)+ value+ field.value.substring(endPos, field.value.length);
}
}
function less_edit_clutter_hook_button ( id ) {
var b = document.getElementById ( id ) ;
b.onclick = function () { less_edit_clutter_rejoin() ; return true ; } ;
}
function less_edit_clutter_delete_reference () {
var si = lec_tb_ref.selectedIndex ;
if ( si == null || si == -1 ) return false; // Nothing selected
var text = lec_tb_ref[si].firstChild.nodeValue ;
text = text.split ( ' : ' ) ;
var value = text.shift() ;
text = text.join ( ' : ' ) ;
text = text.split ( ' | ' ) ;
var refstuff = text.shift() ;
text = text.join ( ' | ' ) ;
var key = '<<REF' + value + '>>' ;
lec_tb_top.value = lec_tb_top.value.split(key).join('') ;
lec_tb1.value = lec_tb1.value.split(key).join('') ;
lec_tb_bt.value = lec_tb_bt.value.split(key).join('') ;
less_edit_clutter_rejoin () ;
less_edit_clutter_parse_main_textbox () ;
return false ;
}
function less_edit_clutter_insert_new_reference () {
if ( lec_last_edited == null ) return false;
var refstuff = prompt ( "Enter reference name:" , '' ) ;
if ( null == refstuff ) return false; // Cancel
var text = prompt ( "Enter reference contents:" , '' ) ;
if ( null == text ) return false; // Cancel
var max = lec_tb_ref.length + 2 ;
less_edit_clutter_insert_at_cursor ( lec_last_edited , '<<REF' + max + '>>' ) ;
text = max + ' : ' + refstuff + ' | ' + text ;
var opt = document.createElement ( 'option' ) ;
opt.value = max-1 ;
opt.appendChild ( document.createTextNode ( text ) ) ;
lec_tb_ref.appendChild ( opt ) ;
less_edit_clutter_rejoin () ;
less_edit_clutter_parse_main_textbox () ;
return false ;
}
function less_edit_clutter_mark_text_range ( ctrl , from , to ) {
if(ctrl.setSelectionRange) {
ctrl.focus();
ctrl.setSelectionRange ( from , to ) ;
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse ( true ) ;
range.moveEnd ( 'character', from ) ;
range.moveStart ( 'character', to ) ;
range.select();
}
}
function less_edit_clutter_tb1_select ( ta ) {
var selection = ta.value.substr(ta.selectionStart, ta.selectionEnd - ta.selectionStart);
if ( ! /^\<*REF\d+\>*$/.test ( selection ) ) return ;
var num = selection.match ( /^\<*REF(\d+)\>*$/ ) ;
num = num.pop() ;
num-- ;
lec_tb_ref[num].selected = true ;
}
function less_edit_clutter_find_and_mark ( text , ctrl ) {
var pos = ctrl.value.search ( text ) ;
if ( pos < 0 ) return true ; // Continue search
less_edit_clutter_mark_text_range ( ctrl , pos , pos + text.length ) ;
return false ;
}
function less_edit_clutter_refsel_changed () {
var si = lec_tb_ref.selectedIndex + 1 ;
var key = '<<REF' + si + '>>' ;
var cont = true ;
if ( cont ) cont = less_edit_clutter_find_and_mark ( key , lec_tb_top ) ;
if ( cont ) cont = less_edit_clutter_find_and_mark ( key , lec_tb1 ) ;
if ( cont ) cont = less_edit_clutter_find_and_mark ( key , lec_tb_bt ) ;
if ( cont ) alert ( "Something's wrong - could not find reference " + key + "! Better reload this edit in the standard edit box!" ) ;
}
function less_edit_clutter_refsel_edit () {
var si = lec_tb_ref.selectedIndex ;
if ( si == null || si == -1 ) return false; // Nothing selected
var text = lec_tb_ref[si].firstChild.nodeValue ;
text = text.split ( ' : ' ) ;
var value = text.shift() ;
text = text.join ( ' : ' ) ;
text = text.split ( ' | ' ) ;
var refstuff = text.shift() ;
text = text.join ( ' | ' ) ;
refstuff = prompt ( "Entrez le nom de la référence :" , refstuff ) ;
if ( null == refstuff ) return ; // Cancel
text = prompt ( "Entrez le contenu de la référence :" , text ) ;
if ( null == text ) return ; // Cancel
lec_tb_ref[si].firstChild.nodeValue = value + ' : ' + refstuff + ' | ' + text ;
return false;
}
// compare be-x-old:xxx and be:xxx doesn't work as expected
// we must sort on the lang code only
function less_edit_clutter_compare_lang(a, b) {
a = a.split(':')[0];
b = b.split(':')[0];
if (a > b)
return 1;
else if (a < b)
return -1;
return 0;
}
function less_edit_clutter_rejoin () {
if ( lec_active != 1 ) return ;
v = lec_tb_top.value ;
v = v.replace(/^\s+|\s+$/g,"") ;
if ( v != '' ) v += "\n" ;
v += lec_tb1.value ;
v = v.replace(/^\s+|\s+$/g,"") ;
if ( v != '' ) v += "\n\n" ;
v += lec_tb_bt.value ;
// Conserver autant que possible le formatage des modèles de bas
// de page sans chercher à conserver la mixin de cat/interwikis et
// de modèles
//v = v.replace(/^\s+|\s+$/g,"") ;
if ( v != '' ) v += "\n" ;
// Categories
n = lec_tb_cat.value.split ( "\n" ) ;
if (lec_sort_category)
n = n.sort() ;
for ( i = 0 ; i < n.length ; i++ ) {
s = n[i].replace(/^\s+|\s+$/g,"") ;
if ( s == '' ) continue ;
v += '[[Catégorie:' +
s + "]]\n" ;
}
v = v.replace(/^\s+|\s+$/g,"") ;
if ( v != '' ) v += "\n\n" ;
// Interlanguage links
n = lec_tb_ill.value.split ( "\n" ) ;
n = n.sort(less_edit_clutter_compare_lang) ;
for ( i = 0 ; i < n.length ; i++ ) {
s = n[i].replace(/^\s+|\s+$/g,"") ;
if ( s == '' ) continue ;
v += '[[' + s + "]]\n" ;
}
v = v.replace(/^\s+|\s+$/g,"") ;
if ( lec_parse_references ) {
for ( var n = lec_tb_ref.firstChild ; n ; n = n.nextSibling ) {
var text = n.firstChild.nodeValue ;
text = text.split ( ' : ' ) ;
var value = text.shift() ;
text = text.join ( ' : ' ) ;
text = text.split ( ' | ' ) ;
var refstuff = text.shift() ;
text = text.join ( ' | ' ) ;
if ( refstuff != '' ) refstuff = ' name="' + refstuff + '"' ;
text = '<ref' + refstuff + '>' + text + '</ref>' ;
var key = '<<REF' + value + '>>' ;
v = v.split(key).join(text) ;
}
}
lec_tb1.value = v ;
}
function less_edit_clutter_create_elements () {
lec_tb1 = document.getElementById ( 'wpTextbox1' ) ;
lec_parent = lec_tb1.parentNode ;
lec_tb_top = document.createElement ( 'textarea' ) ;
lec_tb_top.id = 'lec_tb_top' ;
lec_tb_top.name = 'lec_tb_top' ;
lec_tb_top.cols = 80 ;
lec_tb_top.rows = 5 ;
lec_tb_ill = document.createElement ( 'textarea' ) ;
lec_tb_ill.id = 'lec_tb_ill' ;
lec_tb_ill.name = 'lec_tb_ill' ;
lec_tb_ill.cols = 30 ;
lec_tb_ill.rows = 5 ;
lec_tb_cat = document.createElement ( 'textarea' ) ;
lec_tb_cat.id = 'lec_tb_cat' ;
lec_tb_cat.name = 'lec_tb_cat' ;
lec_tb_cat.cols = 30 ;
lec_tb_cat.rows = 5 ;
lec_tb_bt = document.createElement ( 'textarea' ) ;
lec_tb_bt.id = 'lec_tb_bt' ;
lec_tb_bt.name = 'lec_tb_bt' ;
lec_tb_bt.cols = 30 ;
lec_tb_bt.rows = 5 ;
lec_bottom_table = document.createElement ( 'table' ) ;
lec_bottom_tbody = document.createElement ( 'tbody' ) ;
lec_bottom_tr = document.createElement ( 'tr' ) ;
lec_bottom_tr2 = document.createElement ( 'tr' ) ;
lec_bottom_td1 = document.createElement ( 'td' ) ;
lec_bottom_td2 = document.createElement ( 'td' ) ;
lec_bottom_td3 = document.createElement ( 'td' ) ;
lec_bottom_td1.style.width = '40%' ;
lec_bottom_td2.style.width = '30%' ;
lec_bottom_td3.style.width = '30%' ;
lec_bottom_td1.appendChild ( document.createTextNode ( 'Modèles de bas de page et mots magiques' ) ) ;
lec_bottom_td1.appendChild ( document.createElement ( 'br' ) ) ;
lec_bottom_td1.appendChild ( lec_tb_bt ) ;
lec_bottom_td2.appendChild ( document.createTextNode ( 'Catégories' ) ) ;
lec_bottom_td2.appendChild ( document.createElement ( 'br' ) ) ;
lec_bottom_td2.appendChild ( lec_tb_cat ) ;
lec_bottom_td3.appendChild ( document.createTextNode ( 'Liens interwikis' ) ) ;
lec_bottom_td3.appendChild ( document.createElement ( 'br' ) ) ;
lec_bottom_td3.appendChild ( lec_tb_ill ) ;
if ( lec_parse_references ) {
lec_tb1.onselect = function () { less_edit_clutter_tb1_select ( lec_tb1 ) ; } ;
lec_tb_top.onselect = function () { less_edit_clutter_tb1_select ( lec_tb_top ) ; } ;
lec_tb_bt.onselect = function () { less_edit_clutter_tb1_select ( lec_tb_bt ) ; } ;
lec_tb1.onfocus = function () { lec_last_edited = lec_tb1 ; } ;
lec_tb_top.onfocus = function () { lec_last_edited = lec_tb_top ; } ;
lec_tb_bt.onfocus = function () { lec_last_edited = lec_tb_bt ; } ;
lec_tb_ref = document.createElement ( 'select' ) ;
lec_tb_ref.id = 'lec_tb_ref' ;
lec_tb_ref.name = 'lec_tb_ref' ;
lec_tb_ref.size = 5 ;
lec_tb_ref.style.width = '100%' ;
lec_tb_ref.onchange = less_edit_clutter_refsel_changed ;
lec_tb_ref.ondblclick = less_edit_clutter_refsel_edit ;
var a_new_reference = document.createElement ( 'a' ) ;
a_new_reference.appendChild ( document.createTextNode ( 'ajouter' ) ) ;
a_new_reference.href = '#' ;
a_new_reference.onclick = less_edit_clutter_insert_new_reference ;
var a_delete_reference = document.createElement ( 'a' ) ;
a_delete_reference.appendChild ( document.createTextNode ( 'supprimer' ) ) ;
a_delete_reference.href = '#' ;
a_delete_reference.onclick = less_edit_clutter_delete_reference ;
var a_edit_reference = document.createElement ( 'a' ) ;
a_edit_reference.appendChild ( document.createTextNode ( 'éditer' ) ) ;
a_edit_reference.href = '#' ;
a_edit_reference.onclick = less_edit_clutter_refsel_edit ;
lec_bottom_td4 = document.createElement ( 'td' ) ;
lec_bottom_td4.appendChild ( document.createTextNode ( 'Références (' ) ) ;
lec_bottom_td4.appendChild ( a_new_reference ) ;
lec_bottom_td4.appendChild ( document.createTextNode ( ' | ' ) ) ;
lec_bottom_td4.appendChild ( a_delete_reference ) ;
lec_bottom_td4.appendChild ( document.createTextNode ( ' | ' ) ) ;
lec_bottom_td4.appendChild ( a_edit_reference ) ;
lec_bottom_td4.appendChild ( document.createTextNode ( ')' ) ) ;
lec_bottom_td4.appendChild ( document.createElement ( 'br' ) ) ;
lec_bottom_td4.appendChild ( lec_tb_ref ) ;
lec_bottom_td4.colSpan = '3' ;
lec_bottom_tr2.appendChild ( lec_bottom_td4 ) ;
lec_bottom_tbody.appendChild ( lec_bottom_tr2 ) ;
}
lec_bottom_tr.appendChild ( lec_bottom_td1 ) ;
lec_bottom_tr.appendChild ( lec_bottom_td2 ) ;
lec_bottom_tr.appendChild ( lec_bottom_td3 ) ;
lec_bottom_tbody.appendChild ( lec_bottom_tr ) ;
lec_bottom_table.appendChild ( lec_bottom_tbody ) ;
var a = document.createElement ( 'a' ) ;
a.href = '#' ;
a.appendChild ( document.createTextNode ( "basculer en mode d'édition traditionnelle" ) ) ;
a.onclick = function () {
u = document.getElementById('lec_div_top') ;
u.parentNode.removeChild ( u ) ;
u = document.getElementById('lec_div_bottom') ;
u.parentNode.removeChild ( u ) ;
lec_tb1.value = lec_original ;
lec_active = 0 ;
return false ;
}
var b = document.createElement ( 'a' ) ;
b.href = '#' ;
b.appendChild ( document.createTextNode ( "refaire pour le contenu courant" ) ) ;
b.onclick = function () {
less_edit_clutter_rejoin () ;
less_edit_clutter_parse_main_textbox () ;
return false ;
}
var top = document.createElement ( 'div' ) ;
top.id = 'lec_div_top' ;
var adiv = document.createElement ( 'div' ) ;
adiv.style.display = 'block' ;
adiv.appendChild ( document.createTextNode ( "Cœur de l'article (" ) ) ;
adiv.appendChild ( a ) ;
adiv.appendChild ( document.createTextNode ( " | " ) ) ;
adiv.appendChild ( b ) ;
adiv.appendChild ( document.createTextNode ( ")" ) ) ;
top.appendChild ( document.createTextNode ( "Modèles d'en-tête et images" ) ) ;
top.appendChild ( lec_tb_top ) ;
top.appendChild ( adiv ) ;
var bottom = document.createElement ( 'div' ) ;
bottom.id = 'lec_div_bottom' ;
bottom.appendChild ( document.createTextNode ( 'Bas de page' ) ) ;
bottom.appendChild ( lec_bottom_table ) ;
lec_parent.insertBefore ( bottom , lec_tb1.nextSibling ) ;
lec_parent.insertBefore ( top , lec_tb1 ) ;
lec_bottom_table.id = 'lec_tb_bottom' ;
lec_bottom_table.style.width = '100%' ;
lec_bottom_table.style.cellSpacing = '2' ;
lec_bottom_table.style.cellPadding = '2' ;
less_edit_clutter_append_show_hide ( 'lec_tb_top' ) ;
less_edit_clutter_append_show_hide ( 'lec_tb_bottom' ) ;
}
function less_edit_clutter_toggle_show_hide ( id , a ) {
var x = document.getElementById ( id ) ;
if ( x.style.display == 'none' ) {
x.style.display = '' ;
while ( a.firstChild ) a.removeChild ( a.firstChild ) ;
a.appendChild ( document.createTextNode ( 'masquer' ) ) ;
} else {
x.style.display = 'none' ;
while ( a.firstChild ) a.removeChild ( a.firstChild ) ;
a.appendChild ( document.createTextNode ( 'voir' ) ) ;
}
}
function less_edit_clutter_append_show_hide ( id ) {
var x = document.getElementById ( id ) ;
var n = document.createElement ( 'span' ) ;
var a = document.createElement ( 'a' ) ;
a.href = '#' ;
a.onclick = function () { less_edit_clutter_toggle_show_hide ( id , this ) ; return false ; }
a.appendChild ( document.createTextNode ( 'masquer' ) ) ;
n.appendChild ( document.createTextNode ( ' (' ) ) ;
n.appendChild ( a ) ;
n.appendChild ( document.createTextNode ( ')' ) ) ;
n.appendChild ( document.createElement ( 'br' ) ) ;
x.parentNode.insertBefore ( n , x ) ;
// x.style.display = 'none' ;
}
function less_edit_clutter_validate_langlink(lc, no_ws, lines, languages) {
// Not completly correct as [[foo:bar]] will be identified as a lang link
// even foo isn't one, for now handle only image:. Problem not solvable
// unless we keep a complete liste of valid lang links (in a cookie filled from
// sitematrix via api.php and a 24h expiration time ?)
if ( lc.match(/^\[\[\w+(-\w+)?(-\w+)?\:.*\]\]$/) &&
!lc.match(/^\[\[(image|file|fichier)\:.*\]\]$/) ) {
lines.pop() ;
var s = no_ws.substr ( 2 ) ;
s = s.replace ( /\]\]$/ , "" ) ;
languages.push ( s ) ;
return true;
}
return false;
}
function less_edit_clutter_parse_main_textbox () {
lec_original = lec_tb1.value ;
var lines = lec_original.split("\n") ;
var in_template = 0 ;
var begin_templates = "" ;
// References
if ( lec_parse_references && /\<\<REF\d+\>\>/.test ( lec_original ) ) lec_parse_references = 0 ; // Already contains pattern, aborting
if ( lec_parse_references ) {
cnt = 1 ;
v = lec_original ;
v = v.split ( /\<ref/ig ) ;
o = v.shift () ;
refs = new Array () ;
while ( lec_tb_ref.firstChild ) lec_tb_ref.removeChild ( lec_tb_ref.firstChild ) ;
for ( i = 0 ; i < v.length ; i++ ) {
if ( v[i].substr(0,1) != ' ' && v[i].substr(0,1) != '>' ) { // Something that is not a reference tag
o += '<ref' + v[i] ;
continue ;
}
n = v[i].split ( '>' ) ;
if ( n.length < 2 ) { o += '<ref' + v[i] ; continue ; }
refstuff = n.shift() ;
refstuff = refstuff.match ( /name=\"(.*)\"\s*$/ ) ;
if ( null == refstuff ) refstuff = '' ;
else refstuff = refstuff.pop() ;
n = n.join ( '>' ) ;
n = n.split ( '</ref>' ) ;
if ( n.length < 2 ) { o += '<ref' + v[i] ; continue ; }
refcontents = n.shift() ;
// if ( n.length > 1 ) { o += '<ref' + v[i] ; continue ; }
n = n.join ( '</ref>' ) ;
o += '<<REF' + cnt + '>>' + n ;
refs.push ( cnt + ' : ' + refstuff + ' | ' + refcontents ) ;
cnt++ ;
}
for ( i = 0 ; i < refs.length ; i++ ) {
var opt = document.createElement ( 'option' ) ;
opt.value = i ;
opt.appendChild ( document.createTextNode ( refs[i] ) ) ;
lec_tb_ref.appendChild ( opt ) ;
}
lines = o.split("\n") ;
}
// Begin of text
while ( lines.length > 0 ) {
var no_ws = lines[0].replace(/^\s+|\s+$/g,"") ;
var no_comment = no_ws.replace(/\<!--.*-->/g, "").toLowerCase();
if ( no_ws == "" ) {
lines.shift() ;
if ( begin_templates != '' ) begin_templates += "\n" ;
} else if ( no_comment.match(/^\{\{[^\{\}]*\}\}$/) ) {
lines.shift() ;
begin_templates = begin_templates + no_ws + "\n" ;
} else if ( no_comment.match(/^\{\{[^\{\}]*$/) ) {
begin_templates = begin_templates + lines.shift() + "\n" ;
in_template++ ;
} else if ( in_template && no_comment.match(/^[^\}\{]*\}\}\s*$/) ) {
begin_templates = begin_templates + lines.shift() + "\n" ;
in_template-- ;
} else if ( in_template > 0 ) {
begin_templates = begin_templates + lines.shift() + "\n" ;
} else if ( no_comment.match(/^[-_]+$/) || no_comment.match(/^\s*\<hr\s*\/*\>\s*$/) ) {
begin_templates = begin_templates + lines.shift() + "\n" ;
} else if ( no_comment.match(/^\[\[(image|file|fichier)\:.*\]\]$/) ) {
begin_templates = begin_templates + lines.shift() + "\n" ;
} else break ;
}
begin_templates = begin_templates.replace(/^\s+|\s+$/g,"") ;
var categories = new Array () ;
var languages = new Array () ;
var end_templates = "" ;
// End of text
in_template = 0 ;
end_templates_append = "" ;
while ( lines.length > 0 ) {
var lp = lines.length - 1 ;
var no_ws = lines[lp].replace(/^\s+|\s+$/g,"") ;
var lc = no_ws.toLowerCase() ;
if ( lc == "" ) {
lines.pop() ;
if ( end_templates != '' ) end_templates = "\n" + end_templates ;
} else if ( lc.substr ( 0 , 12 ) == "[[catégorie:" ) {
lines.pop() ;
var s = no_ws.substr ( 12 ) ;
s = s.replace ( /\]\]$/ , "" ) ;
categories.push ( s ) ;
} else if (less_edit_clutter_validate_langlink(lc, no_ws, lines, languages)) {
// less_edit_clutter_validate_langlink() save the lang link
} else if ( lc.match(/^\{\{defaultsort\s*[\|\:].*\}\}$/) ) {
end_templates_append += "\n\n" + lines.pop() ;
} else if ( lc.match(/^\<!--.*-->$/) ) {
end_templates = lines.pop() + "\n" + end_templates ;
} else if ( lc.match(/^\{\{.*\}\}$/) ) {
end_templates = lines.pop() + "\n" + end_templates ;
} else if ( lc.match(/^[^\{\}]*\}\}$/) ) {
end_templates = lines.pop() + "\n" + end_templates ;
in_template++ ;
} else if ( lc.match(/^\{\{[^\{\}]*$/) ) {
end_templates = lines.pop() + "\n" + end_templates ;
in_template-- ;
} else if ( no_ws.match(/^__NOTOC__$/) ) {
end_templates = lines.pop() + "\n" + end_templates ;
} else if ( in_template > 0 ) {
end_templates = lines.pop() + "\n" + end_templates ;
} else break ;
}
categories.reverse();
var oet ;
do {
oet = end_templates ;
end_templates = end_templates.split("\n\n\n").join("\n\n") ;
} while ( end_templates != oet ) ;
end_templates = end_templates.replace(/^\s+|\s+$/g,"") ;
end_templates_append = end_templates_append.replace(/^\s+|\s+$/g,"") ;
if ( end_templates != '') {
if (end_templates_append != '')
end_templates += "\n\n" ;
else
end_templates += "\n" ;
}
end_templates += end_templates_append ;
// Set boxes
lec_tb_top.value = begin_templates ;
if (lec_sort_category)
lec_tb_cat.value = categories.sort().join("\n") ;
else
lec_tb_cat.value = categories.join("\n") ;
lec_tb_ill.value = languages.sort(less_edit_clutter_compare_lang).join("\n") ;
lec_tb_bt.value = end_templates ;
lec_tb1.value = lines.join("\n") ;
}
//</nowiki>
/**
* Outils pour réverter
*
* Fournit des liens dans les pages de diff
*
* Auteurs : Lorian (en), Chphe (fr)
* Dernière révision : 3 novembre 2006
* {{Catégorisation JS}}
*/
importScript('MediaWiki:Gadget-RevertDiff.js');
/**
* Présentation : [[Discussion Projet:JavaScript#Contribution Deluxe]]
* Auteur : Chphe
* {{Catégorisation JS}}
*/
function contribColors()
{
var list = document.getElementById('bodyContent').getElementsByTagName('li');
for(var i=0; i<list.length; i++)
{
var ind = list[i].childNodes.length-2;
if(ind<=0) continue;
var elem = list[i].childNodes[ind];
if(elem.nodeName=='SPAN' && elem.className != "mw-uctop")
{
ind -= 2;
if(ind<=0) continue;
elem = list[i].childNodes[ind];
}
if(elem.nodeName=='SPAN' && elem.className == "mw-uctop") list[i].className = 'contrib-last';
else list[i].className = 'contrib-normal';
}
}
if(mw.config.get('wgPageName') == "Spécial:Contributions") addOnloadHook(contribColors);