Utilisateur:Onnagirai/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.
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 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);