Utilisateur:JrEvans/Spec
Apparence
/*
Messagerie
[modifier | modifier le code]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
[modifier | modifier le code]objets Ajax et cookies pour lecture des messages
*/
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>');
/*
getArticleName()
[modifier | modifier le code]*/
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
}/*
getCookieTag()
[modifier | modifier le code]*/
function getCookieTag(page) {
return (page.charAt(0)+"_"+encodeURIComponent(page.split("Utilisateur:" + mw.config.get('wgUserName') + "/")[1]).replace(/%20/g, "_")+"_oldid");
}
/*
getCurrentId()
[modifier | modifier le code]*/
function getCurrentId(page) {
var li = document.getElementById("t-permalink");
if (li) return (li.getElementsByTagName("a")[0].href.split("oldid=")[1].split("&")[0]);
}
/*
getMessages()
[modifier | modifier le code]*/
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);
}
}
/*
checkPagesForMessages()
[modifier | modifier le code]*/
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());
}
/*
checkPageForMessages()
[modifier | modifier le code]*/
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));
}
/*
alertMessage()
[modifier | modifier le code]*/
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"));
}
/*
Message()
[modifier | modifier le code]*/
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;
}
/*
Debug()
[modifier | modifier le code]*/
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;
}
/*
Main
[modifier | modifier le code]*/
addOnloadHook(getMessages);
addOnloadHook(checkPagesForMessages);
/*
*/