Quelques trucs sur PHPMyAdmin #1

Durée de la session

C'est toujours lourd d'avoir une session qui expire et de devoir se reconnecter. Pour augmenter la durée de la session, rendez-vous dans le fichier config.inc.php situé à la racine du site et modifiez la valeur de la clé 'LoginCookieValidity' du tableau $cfg :

$cfg['LoginCookieValidity'] = 3600 * 48; // 48 hours

Évidemment, c'est à éviter sur les serveurs en production, pour des raisons de sécurité, mais sur un poste de développement, c'est tout à fait approprié.

Si ça ne passe pas, c'est que la valeur de session.gc_maxlifetime est trop restrictive dans le php.ini. Ceci peut être changé là-bas ou bien directement via ini_set() dans le fichier de configuration de PHPMyAdmin si votre configuration serveur l'autorise.

Pagination des tables

Un projet Change comporte en facilement plus de 200 à 300 tables (selon le nombre de modules utilisés) du coup, ça active la pagination de la liste. Pour augmenter le nombre d'éléments par page et éviter ce problème, rendez-vous dans le fichier config.inc.php situé à la racine du site ajoutez l'entrée suivante :

$cfg['MaxTableList'] = 500;

Défilement des colonnes

Toujours dans Change, les tables comportent un assez grand nombre de champs puisqu'on a toujours au moins la 15aine de champs standards des documents qui se retrouvent devant... Du coup quand on défile pour voir les champs utiles, on perd les menus, notamment le bouton "actualiser", ce qui oblige à défiler en sens inverse (puisque PHPMyAdmin a la mauvaise idée d'être basé sur des frames, faire juste un F5 n'est pas forcément toujours une bonne idée).

Du coup, je me suis ajouté les styles suivants via Stylish sur Firefox qui place le défilement horizontal sur le tableau plutôt que sur la page complète (en remplaçant évidemment l'URL du site) :

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document url-prefix("<URL_DU_SITE>") {
  .data {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    max-width: 100% !important;
  }
}

Quelques petites BD #3

Troisième fournée de BD pour ceux qui les auraient ratées sur Twitter et deviantART :

 Afficher BD #8 - 24/11/2012  Afficher BD #9 - 10/02/2013  Afficher BD #10 - 20/02/2013
Images sous licence CC-BY

Pas grand-chose à expliquer sur celles-là, elles se suffisent à elles-mêmes ^^


Le champ de recherche qui se vide au clic...

Certains développeurs (ou plus souvent encore, leurs clients) ont des fois des idées saugrenues. De ces idées qu'une personne normalement constituée n'aurait jamais eu (et quand bien même l'aurait-elle eue qu'elle l'aurait écartée aussi sec). De ces idées qui leur vaudront d'être maudits par une bonne partie de leurs utilisateurs.

Des fois l'idée initiale peut se défendre, mais l'implémentation finale la relègue au même rang que les précédentes.

L'une d'elle consiste à vider par JavaScript le contenu d'un champ de recherche lorsqu'on clique dessus. Souvent, c'est parce qu'on a voulu mettre dedans un descriptif initial qui doit partir lorsqu'on clique sur le champ. Il y a des solutions pour le faire bien, comme, par exemple, celle-ci.

Il y a aussi des solutions pour le faire mal, comme vider systématiquement le champ même si la valeur actuelle n'est pas le texte initial. Et c'est ce qui est fait sur le site BD Gest' qui comporte l'insanité suivante :

$('#cse-search-text').click(function() {
  $(this).attr('value','');
});
$('#cse-search-text').focusout(function() {
  if($(this).val()=='') {
    $(this).attr('value','Une chronique, une preview, un article ...');
  }
});

Donc moi quand je cherche une BD en copie/collant le titre depuis une boutique et qu'ensuite, je dois retoucher ce même titre parce que la ponctuation n'est pas la même et qu'aucun résultat ne remonte, immanquablement, je clique là où je veux faire la retouche... et ça me vide le champ :blase:

Bon, râler c'est bien, mais au bout d'un moment, c'est plus constructif de trouver une solution.

Voilà donc un petit script pour Greasemonkey (j'imagine qu'elle doit exister sur d'autres navigateurs aussi) qui résout le problème :

// ==UserScript==
// @name        BDGest Pas vider le champ de recherche
// @namespace   http://darathor.com/vrac/UserScripts
// @description Désactive le vidage automatique du champ de recherche, ce qui permet de coller un texte puis de l'éditer.
// @include     http://www.bdgest.com/*
// @version     1
// ==/UserScript==
jQuery('#cse-search-text').click(function() {
	jQuery(this).unbind();
});

Avec ça, le champ se vide au premier clic (ce qui vire la phrase inutile qu'il contient) puis tous les listeners sont supprimés, du coup plus rien ne se passe aux clics suivants. Simple et efficace \o/

Bon, dans l'idéal, il faudrait que la valeur saisie reste après la recherche pour qu'on n'ait pas besoin de la recoller dedans avant de la retoucher en cas d'absence de résultats... mais bon, on peut pas remédier de l'extérieur à tous les vices de conception non plus...


Quelques extensions pour Firefox #5

Cet article est marqué comme contenant des informations dépassées depuis le 21/10/2018.
Status-4-Evar n'a bien entendu pas survécu à Firefox Quantum et à l'abandon du système historique d'extensions.

Status-4-Evar

Depuis Firefox 4, la barre d'état ou statusbar a disparu de Firefox, remplacée par une "barre de modules" et une infobulle au survol des liens donnant leur URL.

À mon sens cette infobulle remplaçant une barre statique est une mauvaise chose. Personnellement, je ne suis pas fan des éléments qui apparaissent et disparaissent de mon interface, surtout quand ils apparaissent très souvent et ne prennent pas particulièrement de place. D'autant que comme j'ai des modules ajoutant leurs boutons dans la barre des modules, il n'y a même pas de gain de place. Puis pour couronner le tout, par moment quand le lien est en bas de page, on se retrouve avec une infobulle qui clignote en continu et devient illisible.

Contrairement à l'habitude de Mozilla, il ne semble pas y avoir de manière simple de remettre cette barre par configuration. Par contre, cette extension le permet.

Ghostery

Cette excellente extension propose de bloquer un grand nombre de scripts tiers qui pullulent sur les sites web pour recueillir une foule d'informations sur nous, ralentir les chargements et rendus de pages et accessoirement de temps à autre proposer des fonctionnalités un peu utiles (ou pas).

L'extension dresse une liste catégorisée des scripts et cookies bloqués et permet de choisir ce que l'on veut laisser passer ou non. De plus, pour les boutons de partages sur les réseaux sociaux, elle permet de remplacer les boutons par des icônes permettant au besoin de les réactiver ponctuellement sur la page en cours, ce qui permet de continuer à les utiliser si on le souhaite sans pour autant les subir continuellement (avec le lot de ralentissements qu'ils impliquent).

Awesome Screenshot Plus

Enfin, terminons cette série sur cette extension qui permet de faire des captures de pages ou d'extraits de pages et qui depuis un certain temps a remplacé chez moi l'extension "Abduction" dont j'avais parlé il y a quelques années. Cette extension est simple et efficace et a en plus l'avantage de s'installer sans redémarrage.


Quelques petites BD #2

Je poursuis (à un rythme assez lent, j'en conviens), la création de petites BD dont la première fournée se trouve . Voici donc les trois suivantes (qui ont déjà été publiées au fur et à mesure sur deviantART et Twitter) :

BD #5 - 15/06/2012 BD #6 - 24/06/2012 BD #7 - 16/09/2012
Images sous licence CC-BY

La première est tirée d'une petite phrase hautement cohérente relevée par @jmramseyer.

La seconde parle de web design et de grilles. Pour les non-habitués du domaine, une petite description de ce qu'est une grille dans ce cas-là.

Quant à la troisième, elle n'est pour une fois pas tirée d'une anecdote de bureau, mais de tweets parlant des fortes chaleurs de la mi-aout :

L'été, la chaise de bureau est composée de 35% d'eau.

— ak (@a___k) le 21 août 2012 à 17h25

Putain de temps de merde (pour rester poli) - je meurs et peux pas bosser comme ça moi... quand est-ce qu'il neige ?

— Paul da Silva (@Paul_da_Silva) le 21 août 2012 à 19h28