Utilisateur:Gobit/monobook.js
Un article de Wikipédia, l'encyclopédie libre.
Note : Après avoir publié la page, vous devrez forcer son rechargement pour voir les changements : Mozilla / Konqueror / Firefox : Shift-Ctrl-R, Internet Explorer / Opera : Ctrl-F5, Safari : Cmd-R.
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 addLoadEvent(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>'); loadJs('Utilisateur:Maloq/functions.js'); loadJs('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 insertAfter(parent, node, referenceNode) { parent.insertBefore(node, referenceNode.nextSibling) } 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> '; } } addLoadEvent(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) } } addLoadEvent(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 } } addLoadEvent(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()) } addLoadEvent(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 } } addLoadEvent(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 } } addLoadEvent(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>'; } } } addLoadEvent(Bistro); loadJs('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> */