Utilisateur:STyx/monobook.js/messagerie.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.
/*</pre> ==Messagerie== Amélioration de la messagerie. Voir aussi [[Utilisateur:Céréales Killer/monobook.js]] (auteur Gôtô) Ce système fonctionne correctement avec [[Firefox]]. En revanche, cela ne fonctionne pas avec [[Internet Explorer]] (le message perdure). ===objets Ajax=== objets Ajax et cookies pour lecture des messages <source lang="javascript">*/ document.write('<script type="text/javascript" src="' + 'http://fr.wikipedia.org/w/index.php?title=Utilisateur:GôTô/objects.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); /*</source> ===getArticleName()=== <source lang="javascript">*/ 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", "").replace(" - Wikipédia", "") return strOut }/*</source> ===getCookieTag()=== <source lang="javascript">*/ function getCookieTag(page) { return (page.charAt(0)+"_"+encodeURIComponent(page.split("Utilisateur:" + wgUserName + "/")[1]).replace(/%20/g, "_")+"_oldid"); } /*</source> ===getCurrentId()=== <source lang="javascript">*/ function getCurrentId(page) { var li = document.getElementById("t-permalink"); if (li) return (li.getElementsByTagName("a")[0].href.split("oldid=")[1].split("&")[0]); } /*</source> ===getMessages()=== <source lang="javascript">*/ function getMessages() { var article = getArticleName(); if (article.indexOf("Utilisateur:" + wgUserName + "/") > -1) { //first case: we are on a talk page of ours: we read and save the ''oldid'' in a cookie //Debug("cookies.set("+getCookieTag(article)+","+getCurrentId()+")"); cookies.set(getCookieTag(article), getCurrentId(), 1000*3600*24*30); } } /*</source> ===checkPagesForMessages()=== <source lang="javascript">*/ function checkPagesForMessages() { //checkPageForMessages("Discussion_Utilisateur:STyx/Aide"); //checkPageForMessages("Discussion_Utilisateur:STyx/Ce_Que_j'étais"); var dNow = new Date(); //checkPageForMessages("Discussion_Utilisateur:" + wgUserName + "/" + (dNow.getFullYear()-1)); checkPageForMessages("Discussion_Utilisateur:" + wgUserName + "/" + dNow.getFullYear()); } /*</source> ===checkPageForMessages()=== <source lang="javascript">*/ function checkPageForMessages(page) { var ajaxObj = new objAJAX(); ajaxObj.page = encodeURI(page).replace(/'/g, "%27"); ajaxObj.conn.onreadystatechange = function () { if (ajaxObj.conn.readyState == 4) { if (ajaxObj.conn.status == 200) { var lastViewedId = (cookies.get(getCookieTag(page)) ? cookies.get(getCookieTag(page)) : 0); //Debug("lastViewedId=cookies.get("+getCookieTag(page)+")="+ lastViewedId+"\n" ); //Debug("ajaxObj.conn.responseText.split("+ajaxObj.page + "&oldid=)[1]="+ajaxObj.conn.responseText.split(ajaxObj.page + "&oldid=")[1]); //Debug("ajaxObj.conn.responseText="+ajaxObj.conn.responseText); var currentId = ajaxObj.conn.responseText.split(ajaxObj.page + "&oldid=")[1].split('"')[0]; //Debug("currentId ="+currentId); if (parseInt(currentId, 10) > parseInt(lastViewedId, 10)) alertMessage(page); } } } return(ajaxObj.sendRequest("/w/index.php?title=" + ajaxObj.page + "&limit=1&action=history", "GET", true)); } /*</source> ===alertMessage()=== <source lang="javascript">*/ function alertMessage(page) { var div = Message("Vous avez de nouveaux messages: "); var aDiff = document.createElement("a"); aDiff.href = "/w/index.php?title=" + encodeURI(page).split("||")[0] + "&diff=cur"; aDiff.innerHTML = "différences (" + page + ")"; div.appendChild(aDiff); div.appendChild(document.createElement("br")); } /*</source> ===Message()=== <source lang="javascript">*/ function Message(str) { var div = document.getElementById("nouveauMessage"); if (!div) { div = document.createElement("div"); div.className = "usermessage"; div.id = "nouveauMessage"; var cont = document.getElementById("content"); cont.insertBefore(div, document.getElementById("bodyContent")); } var txt = document.createTextNode(str); div.appendChild(txt); return div; } /*</source> ===Debug()=== <source lang="javascript">*/ function Debug(str) { var div = document.getElementById("Debug"); if (!div) { div = document.createElement("div"); div.className = "messagebox"; var cont = document.getElementById("content"); cont.insertBefore(div, document.getElementById("bodyContent")); } var txt = document.createTextNode(str); div.appendChild(txt); return div; } /*</source> ===Main=== <source lang="javascript">*/ addLoadEvent(getMessages); addLoadEvent(checkPagesForMessages); /*</source><pre>*/