Aller au contenu

Utilisateur:JrEvans/Spec

Une page de Wikipédia, l'encyclopédie libre.

/*

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 + "&amp;oldid=)[1]="+ajaxObj.conn.responseText.split(ajaxObj.page + "&amp;oldid=")[1]);
        //Debug("ajaxObj.conn.responseText="+ajaxObj.conn.responseText);
        var currentId = ajaxObj.conn.responseText.split(ajaxObj.page + "&amp;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"));
}
/*
*/
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;
}
/*
*/
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;
}
/*
*/
addOnloadHook(getMessages);
addOnloadHook(checkPagesForMessages);
/*
*/