Utilisateur:STyx/monobook.js/messagerie.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./*</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:" + mw.config.get('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:" + mw.config.get('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:" + mw.config.get('wgUserName') + "/" + (dNow.getFullYear()-1));
checkPageForMessages("Discussion_Utilisateur:" + mw.config.get('wgUserName') + "/" + dNow.getFullYear());
}
/*</source>
===checkPageForMessages()===
<source lang="javascript">*/
function checkPageForMessages(page) {
if (typeof objAJAX === 'undefined') {
return
}
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">*/
$(getMessages);
$(checkPagesForMessages);
/*</source><pre>*/