Astuces pour Mozilla Firefox
Firefox est un navigateur libre issu des projets de la fondation Mozilla, dont les deux points forts sont le respect des standards du Web (langages HTML, JavaScript, CSS) et ses possibilités avancées de personnalisation, au moyen de milliers d'extensions.
Pour ma part j'utilise deux extensions indispensables pour modifier l'apparence et le fonctionnement des pages web, une fois affichées dans le navigateur: Stylish (pour ajouter/modifier les CSS) et GreaseMonkey (pour appliquer du JavaScript externe).
Bien que ça n'ait pas de rapport direct, je signale aussi l'existence de l'extension IE Tab assez géniale qui permet d'ouvrir la page actuellement affichée avec le moteur d'Internet Explorer (sauf la prise en charge de certains ActiveX, mais c'est en cours de correction); pour les rares cas où Firefox ne répond pas entièrement ma demande d'internaute exigeant et aigri ^^.
Les "hacks" CSS pour Stylish:
-
Fixer le menu de gauche malgré le défilement vertical de la page (à désactiver avant d'afficher la carte de la ville avec laquelle le hack n'est pas compatible):
div#menu { position: fixed; } -
Changer les couleurs des noms des personnages louisianais (violet trop proche du rose de Nouvelle-France) et néo-espagnols (jaune-orange trop proche du jaune des persos non-joueurs):
.louisiane { color: #893E8F !important; } .ne { color: #EF671D !important; }
Les "scripts utilisateur" JavaScript pour GreaseMonkey:
-
Faire une copie du bloc de navigation du haut du forum en bas (marre de devoir systématiquement retourner en haut de page). Insère de plus deux liens sur chaque message, pour retourner en haut et en bas de page. [Installer le script]
// ==UserScript== // @name Trading Colonies // @namespace // @include http://www.tradingcolonies.net/index.php?page=forum&mode=* // @include http://www.tradingcolonies.com/index.php?page=forum&mode=* // ==/UserScript== var forum=document.getElementById('forum'); var code_html=forum.getElementsByTagName('p')[0].innerHTML; var nouveaup=document.createElement('p'); nouveaup.innerHTML=code_html; nouveaup.style.cssText='text-align: left; margin-bottom: 0.7em;'; var latable=forum.getElementsByTagName('table')[0]; var lediv=latable.nextSibling.nextSibling.nextSibling; lediv.parentNode.insertBefore(nouveaup,lediv); -
(Pour les Louisianais surtout:) inclure dans la fiche de profil des joueurs la production maximale de tabac correspondant aux règles de 3 pour 1 ou 2 pour 1 (selon la population de la ville) [Installer le script]
// ==UserScript== // @namespace http://tradingcolonies.baba0rum.com // @name Production max de tabac // @description // @include http://www.tradingcolonies.net/index.php?page=fiche&player_id=* // @include http://www.tradingcolonies.com/index.php?page=fiche&player_id=* // ==/UserScript== function creerElt(nodename,text) { var elt=document.createElement(nodename); elt.appendChild(document.createTextNode(text)); return elt; } var lignes=document.getElementById('corps').getElementsByTagName('tr'); lignes[0].appendChild(creerElt('th','Tabac')); lignes[0].lastChild.style.cursor='help'; lignes[0].lastChild.setAttribute('title','perso + vente sur le marché = total'); var joueur=document.getElementById('corps').getElementsByTagName('p')[0].firstChild.nextSibling.nodeValue; for(var n=1,ligne; ligne=lignes[n]; n++) { var cellules=ligne.getElementsByTagName('td'); var ville=cellules[0].firstChild.nodeValue; var pop=cellules[2].firstChild.nodeValue; ligne.appendChild(creerElt('td',parseInt((pop-504)/11*2)+'+'+parseInt((pop-504)/11*2*(pop<=7000?3:2))+'='+parseInt((pop-504)/11*2*4))); ligne.lastChild.style.textAlign='center'; } -
Inclure dans la page des conseils, pour chaque produit manufacturé que je produis, les besoins en matières premières correspondantes; à la fois dans la colonne des besoins réels, et de la capacité effective.
La base de données des productions est suffisamment claire pour pouvoir être enrichie par l'utilisateur selon ses propres besoins (en tant que Louisianais et n'ayant pas encore accès aux bourgeois, ma table personnelle ne conviendra pas à tout le monde).
Ce script permet aussi de mettre en bleu les mentions de produits en trop en laissant en rouge les produits manquants.
Enfin sur la page du budget, il souligne en rouge les besoins primaires des habitants qui ne sont pas satisfaits. [installer le script]// ==UserScript== // @namespace http://tradingcolonies.baba0rum.com // @name Informations TradingColonies // @description Ajoute des informations utiles aux pages economiques et statistiques du jeu Trading Colonies // @include http://www.tradingcolonies.net/index.php?page=* // @include http://www.tradingcolonies.com/index.php?page=* // ==/UserScript== var TableProduction=[ [ 'Bière', [1,'Houblon'] ], [ 'Pantalon', [1,'Peau'] ], [ 'Gilet', [2,'Coton'] ], [ 'Salade', [1,'Tomate'], [1,'Nourriture'] ], [ 'Tablier', [3,'Peau'], [2,'Coton'] ], [ 'Cigares', [2,'Feuille de tabac'] ], [ 'Huile', [1,'Graisse'] ] ]; // Page Conseils if(/index\.php\?page=conseils/.test(window.location.href)) { //ajoute les besoins en produits primaires calculés selon les demandes en produits manufacturés var oTable=document.getElementById('corps').getElementsByTagName('table')[1]; for(var n=0,oLigne; oLigne=oTable.getElementsByTagName('tr')[n]; n++) { if(oLigne.getElementsByTagName('td').length>0) { var cCellules=oLigne.getElementsByTagName('td'); for(var p=0,oProduitSecond; oProduitSecond=TableProduction[p]; p++) { var s=''; if(cCellules[0].firstChild.nodeValue==oProduitSecond[0]) { s=' ('; var intQuantité=parseInt(cCellules[1].firstChild.nodeValue); for(var q=1,oProduitBase; oProduitBase=oProduitSecond[q]; q++) { s+=(s!=' ('? ' et ' : '')+eval(oProduitBase[0]*intQuantité)+' '+oProduitBase[1]; } s+=')'; cCellules[1].firstChild.nodeValue+=s; s=' ('; var intQuantité=parseInt(cCellules[2].firstChild.nodeValue); for(var q=1,oProduitBase; oProduitBase=oProduitSecond[q]; q++) { s+=(s!=' ('? ' et ' : '')+eval(oProduitBase[0]*intQuantité)+' '+oProduitBase[1]; } s+=')'; cCellules[2].firstChild.nodeValue+=s; } } } } //garde en rouge les manques mais met en bleu les trop for(var n=0, oLigne; oLigne=oTable.getElementsByTagName('tr')[n]; n++) { for(var p=0, oCellule; oCellule=oLigne.getElementsByTagName('td')[p]; p++) { if(oCellule.hasChildNodes() && /Trop: \d+/.test(oCellule.firstChild.innerHTML)) { oCellule.firstChild.style.color = 'blue'; break; } } } } // Page Budget: met en évidence les productions déficitaires en produits de besoin primaire des habitants if(/index\.php\?page=budget/.test(window.location.href)) { var boolProductionsDeficitaires=0; var oTableau=document.getElementsByTagName('table')[1]; for(var n=1, oLigne; oLigne=oTableau.getElementsByTagName('tr')[n]; n++) { for(var p=0, oCellule; oCellule=oLigne.getElementsByTagName('td')[p]; p++) { if(oCellule.hasChildNodes() && /.*\/.*/.test(oCellule.firstChild.nodeValue)) { var arrA=oCellule.firstChild.nodeValue.split(/\//); var strQuantite=arrA[0], strQteTotale=arrA[1]; if(parseFloat(strQuantite)<parseFloat(strQteTotale)) { boolProductionsDeficitaires=1; //~ oCellule.style.backgroundColor='yellow'; oCellule.innerHTML='<span style="color: red;">'+strQuantite+'</span>/'+strQteTotale; } } } } if(boolProductionsDeficitaires) {alert('ATTENTION: certains besoins primaires de vos habitants ne sont pas suffisamment comblés.\nLes productions déficitaires sont notées en rouge dans les tableaux.');} } //.user.js