Hophop la zone.
Suite a ce thread : http://www.geekzone.fr/ipb/index.php?showtopic=39462
Je fais partager un ptit script greasemonkey que j’ai fait cet aprem. Il consiste simplement à ajouter un lien sur la page “Voir les nouveaux messages” qui fait simplement “Ouvrir tous les sujets non lus, les marquer comme lus, et retourner a l’index.” Il s’ajoute a coté de celui qui fait juste “Marquer tous les sujets comme lus et retourner à l’index.”, et en un clic, vous ouvrira tout les messages que vous n’avez pas lu sur la zone dans de nouveaux onglets (normalement, en tout cas, avec tabmixplus bien configuré, ca le fait).
Donc, comme j’ai jamais fait de javascript ni de html EVER, ca doit probablement pas etre optimal comme code, ou encore un peu buggé (notament si vous reduisez un peu la fenetre et que les liens ne peuvent pas tous entrer sur la largeur, le texte de droite et mis sur 2 lignes, alors que mon lien est sur une ligne, c’est un peu etrange, et si un javascript roxxor se sent de me dire pourquoi, il gagne une biere sur lille). Pareil si vous vous sentez de l’ameliorer. Pareil si vous avez plusieurs pages de sujets non lus, il faut pas cliquer dessus, sinon, meme les sujets des pages 2, 3, etc seront marqué commes lus.
[codebox]
// ==UserScript==
// @name Better Geekzone
// @description Some Geekzone enhancements
// @namespace http://jbriguet.com/
// @include http://www.geekzone.fr/ipb/index.php?*act=…&lastdate=0
// ==/UserScript==
// version 0.1
//----------------------
// 0.1 First Release / Open All Unread Messages.
function betterGeekzone()
{
// Get all the link on the page
var list = document.getElementsByTagName(‘a’);
for(var i = 0; i < list.length; i++)
{
if ( list[i].hasAttribute('href') )
{
if ( list[i].getAttribute('href').match(".*view=getnewpost*") )
{
// open those containing a getnewpost in their href
window.open(list[i].getAttribute('href'))
}
}
}
// mark all as read, and send to index
window.location = "http://www.geekzone.fr/ipb/index.php?act=Login&CODE=05";
};
function insertLink()
{
var divs = document.getElementsByTagName(“div”);
var maintitles = new Array();
// locate the good line to insert javascript link into
for(var j = 0; j < divs.length; j++)
{
if ( divs[j].hasAttribute('class') && divs[j].className == 'maintitle' )
{
maintitles.push(divs[j]);
}
}
if (maintitles.length == 2)
{
// locate the div to insert link before
var elem = maintitles[1].getElementsByTagName('div');
if (elem.length == 2)
{
// generate the script tag
var scr = document.createElement('script');
scr.innerHTML = '\n' + betterGeekzone.toString() + '\n';
// generate the link element
var newElement = document.createElement('div');
newElement.innerHTML = ' <a href="java script:betterGeekzone()">Ouvrir tous les sujets non lus, les marquer comme lus, et retourner a l\'index.</a>';
newElement.setAttribute('style', 'float: right');
//elem[1].removeAttribute('align');
//elem[1].setAttribute('style', 'float: right');
// insert them just before the original 'Mark all as read' link
// insert link will appears after, but, hey, who cares :)
maintitles[1].insertBefore(scr, elem[1]);
maintitles[1].insertBefore(newElement, elem[1]);
//alert(maintitles[1].innerHTML);
}
}
};
// insert the link into the webpage.
insertLink();
[/codebox]
Voila treve de bavardages, c’est ici que ca se prend : http://www.jbriguet.com/jb/better_geekzone.user.js
Et le greasemonkey obligatoire pour que ca marche. (Donc, c’est Firefox seulement :))
Rapports de bugs bienvenus si vous en avez, critiques, bisous, tout ca, en dessous.