Utilisateur:Gobit/monobook.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.function getHTTPObject() {
var xmlhttp = false;
/* on teste la présence des fonctions */
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
/* fin du test */
/* on essaie de créer l'objet si ce n'est pas déjà fait */
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
//==============================Outils Javascript Wikipompiers
function InitWikiPompiers() {
if (MenuJavascriptWPP || (OptionCompteurWPP==1)) { //menu à insérer
var l = new MygetObj("column-one");
if (l.obj) {if (l.obj.innerHTML) {
l.obj.innerHTML = '<div class="portlet" id="CadreAlerteWikipompiers">'
+ '<h5>Wikipompiers</h5><div class="pBody" id="MenuJavascriptWikipompiers">'
+ ' '
+ '</div></div>'
+ l.obj.innerHTML;
}}//fin deux if l.obj
} // fin if menu à insérer
if (MenuJavascriptWPP) { //on active d'abord le menu :
LancementMenuJavascriptWPP();
// l'option compteur est lancée depuis cette fonction
} else { // pas de MenuJavascriptWPP :
if (OptionCompteurWPP) LancementOptionCompteurWPP();
}
} //fin fonction InitWikipompiers
//-------
function LancementMenuJavascriptWPP() {
var HTTPWikiPompiers = new getHTTPObject();
if (HTTPWikiPompiers) {// requête HTTPWikiPompiers:
HTTPWikiPompiers.open('GET', 'http://fr.wikipedia.org/wiki/Modèle:Ligne_Wikipompiers/MenuJavascript/Menu?action=render&'+(new Date()).getTime(), true); //forçage mise à jour cache navigateur
HTTPWikiPompiers.onreadystatechange = function () {
if (HTTPWikiPompiers.readyState == 4) {
var l = new MygetObj("MenuJavascriptWikipompiers");
if (l.obj) {if (l.obj.innerHTML) {
l.obj.innerHTML = HTTPWikiPompiers.responseText;
}}
if (OptionCompteurWPP) LancementOptionCompteurWPP();
}//fin if readystate == 4
}// fin fonction onreadystatechange
HTTPWikiPompiers.send(null);
}//fin de requête HTTPWikiPompiers
}// fin fonction LancementMenuJavascriptWPP
// --------Option Compteur Wiki
WPPCookN='stampMenuWikipompier='; //terminer par un '=' final
if (document.cookie) {
WPPCookOK=true;
} else {
document.cookie = WPPCookN+'0';
if (document.cookie) WPPCookOK=true; else WPPCookOK=false;
}
function CookBandeauWPPVu(stamp,dateGMT) {//cookN termine par '='
document.cookie = WPPCookN+stamp+'; expires=' + dateGMT+'; path=/';
var l = new MygetObj("CompteurWPP");
if (l.obj) {if (l.obj.innerHTML) l.obj.innerHTML=''; l.obj.style.display='none';}
}
function LancementOptionCompteurWPP() {
var HTTPWikiPompiers = new getHTTPObject();
if (HTTPWikiPompiers) {// requête HTTPWikiPompiers:
HTTPWikiPompiers.open('GET','http://fr.wikipedia.org/wiki/Wikipédia:Wikipompiers?action=render&ctype=text/css&'+(new Date()).getTime(), true); //forçage mise à jour cache navigateur
HTTPWikiPompiers.onreadystatechange = function () {
if (HTTPWikiPompiers.readyState == 4) {
var Statuts = HTTPWikiPompiers.responseText.match(/class\s*=\s*"StatutWPP2"/gi);
var WikiFeuNew=0;
WikiFeuNew=(Statuts? Statuts.length : 0 );
Statuts = HTTPWikiPompiers.responseText.match(/class\s*=\s*"StatutWPP3"/gi) ;
var WikiFeuAide=0;
WikiFeuAide=(Statuts? Statuts.length : 0 );
Statuts=0;
//récupération en-tête HTTP de date dernière mise à jour
try {var stamp = HTTPWikiPompiers.getResponseHeader('ETag');
var istamp=stamp.indexOf('--');
} catch(e){var istamp=-1; var stamp=''; WPPCookOK=false;}
if (istamp<0) {stamp='0';} else {stamp=stamp.substring(istamp+2,istamp+16);}
// récupération ancien stamp dans cookie
var cookDeb = document.cookie.indexOf(WPPCookN);
var cookFIN = document.cookie.indexOf(';',cookDeb);
var cookVal = document.cookie.substring(cookDeb+WPPCookN.length,cookFIN);
//affichage du résultat s'il y en a un
if ((WikiFeuAide+WikiFeuNew>0) && (cookVal!=stamp) ) {
if (OptionCompteurWPP==1) {
var l = new MygetObj("MenuJavascriptWikipompiers");
if (l.obj) {if (l.obj.innerHTML) {
if (WPPCookOK) {
texte='<a title="Masquer pour quelques temps OU jusqu\'au 1er changement de la page WPP" href="javascript:CookBandeauWPPVu('+stamp+',\''+(new Date((new Date()).getTime()+UpdateTimeWPP*24*3600000)).toGMTString()+'\')"> <i>-Vu</i></a>';
} else {
texte='';
}
l.obj.innerHTML='<div id="CompteurWPP" style="background:#FF0; border:solid #F00 thin;">'
+'Aides demandées:'+WikiFeuAide+'<br>'
+'Feux nouveaux:'+WikiFeuNew
+texte+'</div>'
+l.obj.innerHTML;
}}
} else if (OptionCompteurWPP==2) {
if (WPPCookOK) {
texte="\n\n(Ce message se réaffiche après quelques temps OU dès changement de la page WPP)";
} else {
texte='';
}
alert("Alertes Wikipompiers\n\nAides demandées:"+WikiFeuAide+"\nFeux nouveaux:"+WikiFeuNew+texte);
CookBandeauWPPVu(stamp,(new Date((new Date()).getTime()+UpdateTimeWPP*24*3600000)).toGMTString());
}
} // fin test si résultat à afficher
}//fin if readystate == 4
}// fin fonction onreadystatechange
HTTPWikiPompiers.send(null);
}//fin de requête HTTPWikiPompiers
} //fin fonction LancementOptionCompteurWPP
//--------------Lancement commun au Menu et à l'Option
MenuJavascriptWPP= true ;
//pour désactiver temporairement le MenuJavascript WPP,
// remplacer ci-dessus true par false.
OptionCompteurWPP= 1 ;
//modifier la valeur ci-dessus pour changer l'affichage du Compteur WPP,
// (0=compteur désactivé / 1=bandeau dans le menu / 2=message navigateur)
UpdateTimeWPP= 10 ; //compteur réaffiché après UpdateTimeWPP jours même sans changement
$(InitWikiPompiers);
// [[:en:User:Lupin/popups.js]]
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
importScript('Utilisateur:Maloq/functions.js');
importScript('User:EDUCA33E/LiveRC.js');
//---------------------fonctions utiles
function remLoadEvent(func)
{
if (window.removeEventListener)
window.removeEventListener("load", func, false);
else if (window.detachEvent)
window.detachEvent("onload", func);
}
function setSummary(str)
{
document.editform.wpSummary.value = str
}
function addToSummary(str)
{
document.editform.wpSummary.value += " " + str
}
function setReason(str)
{
document.getElementById("wpReason").value = str.replace(/blablaapostrophehahaha/g, "'")
}
function setTextarea (str)
{
document.editform.wpTextbox1.value = str
}
function getArticleName()
{
var strOut = document.title
// case search
if (strOut == "Rechercher - Wikipédia")
return document.getElementById("lsearchbox").value
// case article being modified
strOut = strOut.replace("modification de ", "").replace(" - Modifier", "")
strOut = strOut.replace(" - Prévisualiser", "")
strOut = strOut.replace(" - Wikipédia", "")
return strOut
}
function getUser()
{
var str = getArticleName()
if (/Contributions de cet utilisateur/.test(str))
{
var div = document.getElementById("contentSub")
str = div.innerHTML.replace("Liste des contributions de ", "").split(" ")[0]
if (str == "<a")
str = div.getElementsByTagName("a")[0].innerHTML
}
else
if (/Utilisateur/.test(str))
{
str = str.replace("Discussion ", "")
str = str.replace("Utilisateur:", "")
}
else
str = ""
return str
}
function TodayDate()
{
var m = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre")
var today = new Date()
var day = today.getDate()
var year = today.getYear()
if (year < 2000)
year += 1900
return (day + " " + m[today.getMonth()] + " " + year)
}
<!-- LIENS GAUCHE/BOITE PERSO -->
function nouvelleBoite()
{
var l = document.getElementById("column-one");
if (l)
{
l.innerHTML = l.innerHTML
+ '<div class="portlet" id="p-nbx">'
+ ' <h5>Boîte perso</h5>'
+ ' <div class="pBody">'
+ ' <ul>'
+ ' <li><a href="http://fr.wikipedia.org/wiki/Utilisateur:Gobit/monobook.js">Monobook.js</a></li>'
+ ' <li><a href="http://fr.wikipedia.org/wiki/Utilisateur:Gobit/g%C3%A9ographie">Géographie</a></li>'
+ ' <li><a href="http://fr.wikipedia.org/wiki/Utilisateur:Gobit/langue">Langue</a></li>'
+ ' <li><a href="http://fr.wikipedia.org/wiki/Utilisateur:Gobit/moi">moi</a></li>'
+ ' </ul>'
+ ' </div>'
+ '</div> ';
}
}
$(nouvelleBoite);
<!-- BOITE DE NAVIGATION -->
<!-- EDITION -->
//----------------------------------------------------------DeluxeBar
// Ajoute des boutons et autres jovialités dans la barre d'édition
function DeluxeBar()
{
if (document.createTextNode)
{
var toolbar = document.getElementById("toolbar")
if (!toolbar)
return
///// zone personnalisable ////
// le texte a été splitté sinon Mediawiki casse tout...
// Signature
img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/d/d3/Button_copyvio_discuss.png")
ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "~~" + "~~" + "\", '', '');")
ref.setAttribute("title", "Ajouter la signature - 1")
ref.setAttribute("accesskey", "1")
ref.appendChild(img)
toolbar.appendChild(ref)
// Bonjour
var img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/b/b3/Symbole_carte_Viticole.jpg")
var ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "Bonjour et merci de vous intéresser au projet" + "" + "" + "\", '', '');" + "setSummary(\"" + "" + "\");" );
ref.setAttribute("title", "Dire bonjour")
ref.setAttribute("accesskey", "2")
ref.appendChild(img)
toolbar.appendChild(ref)
// Alerte copyvio
img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/7/79/Button_bombe.png")
ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "{{subst:" + "AlerteCopyright||" + "}}" + "~~" + "~~" + "\", '', '');" + "setSummary(\"" + "Alerte copyright" + "\");" )
ref.setAttribute("title", "Ajouter le modèle d'alerte copyvio - 3")
ref.setAttribute("accesskey", "3")
ref.appendChild(img);
toolbar.appendChild(ref);
// Accueil nouveau
var img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/e/eb/Button_accueilB.png")
var ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "{{subst:" + "Bienvenue" + "}}" + "~~" + "~~" + "\", '', '');" + "setSummary(\"" + "Bienvenue !" + "\");" );
ref.setAttribute("title", "Ajouter le modèle d'accueil des nouveaux - 4")
ref.setAttribute("accesskey", "4")
ref.appendChild(img)
toolbar.appendChild(ref)
// Accueil vandale
img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/1/12/Button_accueilA.png")
ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "{{subst:" + "Bienvenue vandale" + "}}" + "~~" + "~~" + "\", '', '');" + "setSummary(\"" + "Bienvenue..." + "\");" )
ref.setAttribute("title", "Ajouter le modèle d'accueil des vandales - 3")
ref.setAttribute("accesskey", "3")
ref.appendChild(img);
toolbar.appendChild(ref);
//Vandalisme
img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/6/62/Button_stop.png")
ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "{{" + "vandalisme|\", \"" + "}}" + "~~" + "~~" + "\", '', '');" + "setSummary(\"" + "Avertissement vandalisme" + "\");" )
ref.setAttribute("title", "Ajouter le modèle de vandalisme - 4")
ref.setAttribute("accesskey", "4")
ref.appendChild(img);
toolbar.appendChild(ref);
//Bloqué
img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/0/00/Button_vandale.png")
ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "{{" + "vandale bloqué|\", \"" + "}}" + "~~" + "~ [[" + "Discussion Utilisateur:Gobit]] ~~" + "~~" + "~\", '', '');" + "setSummary(\"" + "Bloqué" + "\");" )
ref.setAttribute("title", "Blocage vandale - 5")
ref.setAttribute("accesskey", "5")
ref.appendChild(img);
toolbar.appendChild(ref);
//ébauche
img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/c/c5/Button_%C3%A9bauche_jeu.png")
ref = document.createElement("a")
ref.setAttribute("href", "javascript:insertTags(\"" + "{{" + "ébauche\", \"" + "}}" + "" + " " + "" + "" + "\", '', '');" + "setSummary(\"" + "Ébauche" + "\");" )
ref.setAttribute("title", "Ajouter ébauche - 6")
ref.setAttribute("accesskey", "6")
ref.appendChild(img);
toolbar.appendChild(ref);
// Ébauche
var inputText = document.createElement("input")
inputText.setAttribute("type", "text")
inputText.setAttribute("size", "70")
inputText.setAttribute("style", "font-size: 90%")
inputText.setAttribute("id", "inputRedirect")
img = document.createElement("img")
img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/fr/4/4d/Button_recyclage.png")
ref = document.createElement("a")
ref.setAttribute("href", "javascript:setSummary('redirection vers [['+ document.getElementById('inputRedirect').value + ']]'); setTextarea('#REDIRECT [[' + document.getElementById('inputRedirect').value + ']]');")
ref.setAttribute("title", "Ébauche - 7")
ref.setAttribute("accesskey", "7")
ref.appendChild(img)
toolbar.appendChild(ref)
toolbar.appendChild(inputText)
}
}
$(DeluxeBar);
function DeluxeSummary()
{
var sumLbl = document.getElementById("wpSummaryLabel")
if (sumLbl)
{
//élargissement boite de résumé
var sumInput = document.getElementById("wpSummary")
sumInput.style.width = "90%"
var titles = new Array()
titles.push("Wikif-caté")
titles.push("Wikification")
titles.push("+ caté")
titles.push("+ en")
titles.push("+ interwikis")
titles.push("+ lien portail")
titles.push("- image")
titles.push("- lien ext")
titles.push("corr lien int")
titles.push("fait")
titles.push("typo")
titles.push("plan")
titles.push("ortho")
titles.push("synt")
titles.push("recat")
var inputs = new Array()
inputs.push("Wikification + caté")
inputs.push("Wikification")
inputs.push("+ caté")
inputs.push("+ en")
inputs.push("+ interwikis")
inputs.push("+ lien portail")
inputs.push("- image manquante")
inputs.push("- lien externe")
inputs.push("Correction lien interne")
inputs.push("{{fait}}")
inputs.push("typo")
inputs.push("+ Création/modification du plan")
inputs.push("+ Orthographe")
inputs.push("+ Syntaxe")
inputs.push("+ modif caté")
var str = ""
for (var cpt = 0; cpt < titles.length; cpt ++)
{
str += "<a href=\"javascript:addToSummary('" + inputs[cpt] + "')\""
+ " class=\"sumLink\" title=\"Ajouter '" + inputs[cpt] +"' dans la boîte de résumé\">"
+ titles[cpt]
+ "</a> "
}
sumLbl.innerHTML = str + "<br />" + sumLbl.innerHTML
}
}
$(DeluxeSummary);
function getDeletionName()
{
var div = document.getElementById("contentSub")
var str = div.innerHTML.replace(/.*\(Suppression de « /, "").replace(" »)", "")
return str
}
// fonction très personnelle et réservée aux sysops
//
// Ajout de liens pour remplir automatiquement la boîte de commentaire de suppression
// Ajout d'un textarea pour aider au remplissage de cette page
function DeluxeDeletion()
{
var delForm = document.getElementById("deleteconfirm")
if (delForm)
{
//élargissement boite de résumé
var delInput = document.getElementById("wpReason")
delInput.size = "110"
var titles = new Array()
titles.push("Auteur (Suppr.)")
titles.push("Auteur (Blanc.)")
titles.push("BàS")
titles.push("Commons")
titles.push("Commons idem")
titles.push("Doublon")
titles.push("Fusion")
titles.push("Historique")
titles.push("IàS")
titles.push("PàS")
titles.push("Redirection in.")
titles.push("Renommage")
var inputs = new Array()
inputs.push("Page supprimée à la demande de son auteur ([[Utilisateur:getInput()]])")
inputs.push("Page blanchie par son auteur ([[Utilisateur:getInput()]])")
inputs.push("Essai de débutant")
inputs.push("Image sur [[commons:getInput()]]")
inputs.push("Image sur [[commons:getDeletionName()]]")
inputs.push("Image doublon de [[:getInput()]]")
inputs.push("Suppression pour fusion")
inputs.push("Suppression pour restauration d’historique")
inputs.push("Décision [[Wikipédia:Images à supprimer" + "]], voir [[Wikipédia:Images à supprimer/getDeletionName()]]")
inputs.push("Décision [[Wikipédia:Pages à supprimer" + "]], voir [[Wikipédia:Pages à supprimer/getDeletionName()]]")
inputs.push("Redirection inutile")
inputs.push("Suppression pour renommage")
var strLinks = "<input type=text id=\"inputArticle\" name=\"inputArticle\" class=\"delInput\" /><br />"
for (var cpt = 0; cpt < titles.length; cpt ++)
{
strLinks += "<a href=\"javascript:setReason('" + inputs[cpt] + "');getInput();\""
+ " class=\"sumLink\" title=\"Ajouter '" + inputs[cpt] +"' dans la boîte de motif\">"
+ titles[cpt]
+ "</a> "
}
delForm.innerHTML = strLinks + delForm.innerHTML
}
}
function getInput()
{
var obj = document.getElementById("wpReason")
if (/getInput\(\)/.test(obj.value))
obj.value = obj.value.replace(/getInput\(\)/g, document.getElementById("inputArticle").value)
else if (/getDeletionName\(\)/.test(obj.value))
obj.value = obj.value.replace(/getDeletionName\(\)/g, getDeletionName())
}
$(DeluxeDeletion);
<!-- EDITION/SYSOP -->
// fonction très personnelle et réservée aux sysops
//
// Ajout de liens pour remplir automatiquement la boîte de commentaire de suppression
// Ajout d'un lien vers ma sous page perso regroupant mes suppressions
// Ajout d'un textarea pour aider au remplissage de cette page
function DeluxeDeletion()
{
var delForm = document.getElementById("deleteconfirm")
if (delForm)
{
//élargissement boite de résumé
var delInput = document.getElementById("wpReason")
delInput.size = "110"
var titles = new Array()
titles.push("Auteur (Suppr.)")
titles.push("Copyvio")
titles.push("BàS")
titles.push("Commons")
titles.push("Commons idem")
titles.push("Doublon")
titles.push("Fusion")
titles.push("Historique")
titles.push("IàS")
titles.push("PàS")
titles.push("Redirection in.")
titles.push("Renommage")
var inputs = new Array()
inputs.push("Page supprimée à la demande de son auteur ([[Utilisateur:getInput()]])")
inputs.push("Copyvio intégral : ")
inputs.push("Essai de débutant")
inputs.push("Image sur [[commons:getInput()]]")
inputs.push("Image sur [[commons:getDeletionName()]]")
inputs.push("Image doublon de [[:getInput()]]")
inputs.push("Suppression pour fusion")
inputs.push("Suppression pour nettoyage d’historique")
inputs.push("Décision [[Wikipédia:Images à supprimer" + "]], voir [[Wikipédia:Images à supprimer/getDeletionName()]]")
inputs.push("Décision [[Wikipédia:Pages à supprimer" + "]], voir [[Wikipédia:Pages à supprimer/getDeletionName()]]")
inputs.push("Redirection inutile")
inputs.push("Suppression pour renommage")
var strLinks = "<input type=text id=\"inputArticle\" name=\"inputArticle\" class=\"delInput\" /><br />"
for (var cpt = 0; cpt < titles.length; cpt ++)
{
strLinks += "<a href=\"javascript:setReason('" + inputs[cpt] + "');getInput();\""
+ " class=\"sumLink\" title=\"Ajouter '" + inputs[cpt] +"' dans la boîte de motif\">"
+ titles[cpt]
+ "</a> "
}
delForm.innerHTML = strLinks + delForm.innerHTML
}
}
$(DeluxeDeletion);
//---------------------------------------------------------------------------------------restauration
function UndeleteSelectAll()
{
if (getArticleName() == "Voir et restaurer la page effacée")
{
var title2 = document.getElementsByTagName("h2")
var all = document.createElement("input")
all.setAttribute("type", "checkbox")
all.setAttribute("onchange", "selectAll(this.checked)")
all.setAttribute("title", "Sélectionner/Désélectionner tous")
if (title2.length > 0)
title2[title2.length -1].appendChild(all)
all.click()
}
}
function selectAll(bool)
{
var inputs = document.getElementsByTagName("input")
for (var cpt = 0 ; cpt < inputs.length ; cpt++)
{
inputs[cpt].checked = bool
}
}
$(UndeleteSelectAll);
//remove quick preview
remLoadEvent(addQuickPreview)
//remove toolbar
remLoadEvent(ImprovedToolbar)
var fus = new Object(); // fus is used as namespace.
fus.main_contributor = undefined; // main contributor name
fus.contributors_list = new Object(); // XHTML list of contributors
fus.contribs_limit = 0; // 0 means default value
fus.count = 0; // number of fusionned contribs
fus.colors = [ "", "#FFB", "#FBF", "#BFF", "#DDF", "#DFD", "#FDD",
"#EEA", "#EAE", "#AEE", "#CCE", "#CEC", "#ECC",
"#DD9", "#D9D", "#9DD", "#BBD", "#BDB", "#DBB" ];
fus.contributors_list.init = function() {
this.elm = document.createElement("ol");
}
fus.contributors_list.add = function(contributor) {
// UI components
var li = document.createElement("li");
li.fus = new Object();
li.fus.contributor = contributor;
li.style.backgroundColor = fus.colors[fus.count];
li.appendChild(document.createTextNode(contributor));
var a = document.createElement("a");
a.href = "http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=frwiki_p&user=" + contributor;
a.appendChild(document.createTextNode(" editcount"));
li.appendChild(a);
this.elm.appendChild(li);
}
fus.monthNameToNum = function(m) {
if (m == "janvier") return 0;
if (m == "février") return 1;
if (m == "mars") return 2;
if (m == "avril") return 3;
if (m == "mai") return 4;
if (m == "juin") return 5;
if (m == "juillet") return 6;
if (m == "août") return 7;
if (m == "septembre") return 8;
if (m == "octobre") return 9;
if (m == "novembre") return 10;
if (m == "décembre") return 11;
return 12;
}
// Return Date of contribution listed in this li element.
fus.contribTimeRegex = /(\d+)\s+(\S+)\s+(\d{4})\D+(\d+)\D+(\d{2})/;
fus.parseContribTime = function(li) {
var datetime = li.firstChild.nodeValue.match(fus.contribTimeRegex);
datetime[2] = fus.monthNameToNum(datetime[2]);
return new Date(parseInt(datetime[3]),
datetime[2],
parseInt(datetime[1]),
parseInt(datetime[4], 10),
parseInt(datetime[5], 10));
}
fus.fuse = function(ul1, ul2, contributor, color) {
contributor = " -- " + contributor;
var li1 = ul1.firstChild;
for (var li22 = ul2.firstChild; li22; li22 = li22.nextSibling) {
if (li22.nodeType == 1) {
var li2 = li22.cloneNode(true);
li2.appendChild(document.createTextNode(contributor));
li2.style.backgroundColor = color;
var time2 = fus.parseContribTime(li2).getTime();
while (li1) {
if (li1.nodeType == 1) {
var time1 = fus.parseContribTime(li1).getTime();
if (time1 <= time2) {
if (time1 == time2) {
li1.style.borderLeftWidth = li2.style.borderLeftWidth = "0.25em";
li1.style.borderLeftStyle = li2.style.borderLeftStyle = "solid";
li1.style.borderLeftColor = li2.style.borderLeftColor = "red";
}
break;
}
}
li1 = li1.nextSibling;
}
ul1.insertBefore(li2, li1);
}
}
}
fus.getElementById = function(elm, id) {
var res = null;
if (elm.id == id) res = elm;
for (var child = elm.firstChild; !res && child; child = child.nextSibling)
if (child.nodeType == 1)
res = fus.getElementById(child, id);
return res;
}
fus.onFusionWith = function(contributor) {
++fus.count;
fus.contributors_list.add(contributor);
// Load fusionned page with synchronous XMLHttpRequest
var http_request;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
http_request.overrideMimeType('text/xml');
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
http_request.open('GET', "/w/index.php?title=Special:Contributions&target="+contributor+"&limit="+fus.contribs_limit, false);
http_request.send(null);
// Get both contributions histories
var ul1 = document.getElementById("bodyContent");
ul1 = ul1.getElementsByTagName("ul")[0];
var ul2 = http_request.responseXML;
if (!ul2.getElementById) { // MSIE
ul2 = document.createElement("div");
ul2.innerHTML = http_request.responseText;
ul2 = fus.getElementById(ul2, "bodyContent");
} else {
ul2 = ul2.getElementById("bodyContent");
}
ul2 = ul2.getElementsByTagName("ul")[0];
// Fusion
fus.fuse(ul1, ul2, contributor, fus.colors[fus.count]);
}
fus.parseContribUrlTarget = function(url) {
var target = url.match(/&target=([^&]+)/);
if (!target)
target = url.match(/Special:Contributions\/(\S+)/);
return target[1];
}
fus.parseContribUrlLimit = function(url) {
var limit = url.match(/&limit=(\d+)/);
if (limit)
return parseInt(limit[1]);
return 0;
}
fus.onContribPage = function(url) {
fus.main_contributor = fus.parseContribUrlTarget(url);
fus.contribs_limit = fus.parseContribUrlLimit(url);
// UI components
fus.contributors_list.init();
fus.contributors_list.add(fus.main_contributor);
var input = document.createElement("input");
input.type = "text";
var submit = document.createElement("input");
submit.type = "submit";
var form = document.createElement("form");
form.onsubmit = function() {
fus.onFusionWith(input.value);
return false;
}
// UI components layout
submit.value = "Fusionner";
var fusion = document.createTextNode("Fusionner avec les contributions de ");
form.appendChild(fusion);
form.appendChild(input);
form.appendChild(submit);
var bodyContent = document.getElementById("bodyContent");
bodyContent.insertBefore(form, bodyContent.firstChild);
bodyContent.insertBefore(fus.contributors_list.elm, bodyContent.firstChild);
}
fus.testForContribPage = function() {
var url = window.location.href;
if (url.match(/\/Special:Contributions\/|title=Special:Contributions/)) {
try {
fus.onContribPage(url);
} catch (e) { /* Something went wrong. */ }
}
}
if (window.addEventListener) {
window.addEventListener("load", fus.testForContribPage, false);
}
else if (window.attachEvent) {
window.attachEvent("onload", fus.testForContribPage);
}
// Parental content filter for Wikipedia
// Copyright 2006, Marc Mongenet
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See http://www.gnu.org/licenses/gpl.html
/*
* How it works:
* - For all divs with a "contentFilter" class:
* - If contentFilter cookie is on, hide content and display button to turn off filtering;
* - else show content and display button to turn on filtering
* - It provide a function to be called by the on/off filter button.
*/
var cflt = new Object(); // cflt is used as namespace.
cflt.nextYearGMT = function() {
var nextYear = new Date();
nextYear.setFullYear(nextYear.getFullYear() + 1);
return nextYear.toGMTString();
}
cflt.getParentalCheck = function() {
// If password present, ask for it.
var start;
if (document.cookie && (start = document.cookie.indexOf("contentFilterPassword=")) != -1) {
start += 22;
var end = document.cookie.indexOf(";", start);
if (end == -1) end = document.cookie.length;
if (start != end) {
var cookie_pass = document.cookie.substring(start, end);
for (var retry = 0; retry < 3; ++retry) {
var user_pass = window.prompt("Entrez le mot de passe");
if (user_pass == cookie_pass) {
var is_suppr = !window.confirm("Conserver le mot de passe ?");
if (is_suppr) {
document.cookie = "contentFilterPassword=; path=/; expire=Fri, 02-Jan-1970 00:00:00 GMT";
return "NO CONTROL";
}
return "PASSED";
}
}
return "FAILED";
}
}
// Propose to set a password
var is_pass = window.confirm("Activer le contrôle parental par mot de passe ?");
if (is_pass) {
var pass = window.prompt("Entrez un nouveau mot de passe");
document.cookie = "contentFilterPassword=" + pass + "; path=/; expire=" + cflt.nextYearGMT();
return "SET"; // Do not display filtered content after setting password
}
return "NO CONTROL";
}
cflt.setFilter = function(on) {
if (!on) {
var check = cflt.getParentalCheck();
if (check == "NO CONTROL") {
document.cookie = "contentFilter=off; path=/; expires=" + cflt.nextYearGMT();
cflt.lookForFilteredContent(false);
}
if (check == "PASSED") {
cflt.lookForFilteredContent(false);
}
}
else {
document.cookie = "contentFilter=0; path=/; expire=Fri, 02-Jan-1970 00:00:00 GMT";
cflt.lookForFilteredContent(true);
}
}
cflt.filterContent = function(div, is_on) {
// Put content filtering UI if not already there.
if (!div.contentFilteredUI) {
div.contentFilteredUI = true;
var on_button = document.createElement("button");
on_button.appendChild(document.createTextNode("Montrer les contenus sensibles"));
on_button.onclick = function() { cflt.setFilter(false); }
div.insertBefore(on_button, div.firstChild);
var off_button = document.createElement("button");
off_button.appendChild(document.createTextNode("Cacher les contenus sensibles"));
off_button.onclick = function() { cflt.setFilter(true); }
div.insertBefore(off_button, div.firstChild);
}
// Show/hide UI depending on filter state.
var subdivs = div.getElementsByTagName("div");
subdivs[0].style.display = is_on ? "block" : "none"; // content box title
subdivs[1].style.display = is_on ? "none" : "block"; // filtered content
var buttons = div.getElementsByTagName("button");
buttons[0].style.display = is_on ? "none" : "inline"; // hide button
buttons[1].style.display = is_on ? "inline" : "none"; // show button
}
cflt.lookForFilteredContent = function(is_on) {
// Call cflt.filterContent() on all <div class="contentFilter">
var bodyContent = document.getElementById("bodyContent");
var divs = bodyContent.getElementsByTagName("div");
for (var d = 0; d < divs.length; ++d) {
if (divs[d].className == "contentFilter") {
cflt.filterContent(divs[d], is_on);
}
}
}
cflt.handleFilteredContent = function() {
try {
var is_on = true; // filter on by default
if (document.cookie) {
is_on = document.cookie.indexOf("contentFilter=off") == -1;
}
cflt.lookForFilteredContent(is_on);
} catch (e) { /* Something went wrong. */ }
}
// We set here the cflt class on the html element so that filtering
// CSS rules are applied before the content is displayed but only
// if JavaScript is active. This way, the content is still accessible
// without JavaScript but does not appear in a flash before the
// script hides it.
try {
cflt.html = document.getElementsByTagName("html")[0];
cflt.html.className = "cflt " + cflt.html.className;
} catch (e) { /* Something went wrong. */ }
// Register functions
if (window.addEventListener) {
window.addEventListener("load", cflt.handleFilteredContent, false);
}
else if (window.attachEvent) {
window.attachEvent("onload", cflt.handleFilteredContent);
}
function Bistro() {
var a = document.getElementById("p-navigation");
if (a) {
a = a.getElementsByTagName("ul");
if(a.length > 0) {
a[0].innerHTML = a[0].innerHTML + '<li><a id="n-bistro" title="Wikipédia:Le Bistro" href="/w/index.php?title=Wikip%C3%A9dia:Le_Bistro&action=purge">Bistro</a></li>';
}
}
}
$(Bistro);
importScript('User:EDUCA33E/LiveRC.js');
//====================================fonctions communes
function MygetObj(name) {
if (document.getElementById) {
this.obj = document.getElementById(name);
} else if (document.all) {
this.obj = document.all[name];
} else if (document.layers) {
this.obj = document.layers[name];
}
} //endGetObj
/* </nowiki></pre> */