[spip-dev] Alignement des nombres dans les tableaux

Bonjour,

J’essaye de comprendre comment poser la class « numeric » quand il faut, pour gérer l’alignement des nombres dans les tableaux. Je vois que inc/texte pose la class numeric via

if ($align AND preg_match(‹ /^\d+([.,]?)\d*$/ ›, trim($lignes[$j][$i]), $r))

(http://zone.spip.org/trac/spip-zone/browser/core/plugins/textwheel/inc/texte.php#L316)

Si je comprends bien, faut que toute la colonne contienne des nombres, sans espace, sans + ou -, séparé éventuellement par un point ou une virgule. Là, on a le droit à une class numeric.

Dans la hâte pour un besoin spécifique, j’ai changé le preg_match pour qu’il ne prenne pas en compte les + ou - devant les nombres, les espaces entre les chiffres (ex : 40 000), et les %/€/$ en fin de chaine. J’ai ainsi pu obtenir un alignement cohérent pour les tableaux avec des nombres contenant ce genre de trucs.

Je me demande toutefois si le fonctionnement actuel ne devrait pas être légèrement plus souple et poser une class (éventuellement autre que numeric si ce ne sont que pas des chiffres collés, mais que ça ressemble pas non plus à du texte) pour attraper ces colonnes remplies de nombre malgré leur espace, leur + ou - devant les nombres, etc…

J'ignorais tout ça mais c'est une excellente idée !

1) Vu la variété des formats de nombres (en compta, en mathématique, etc)
la regexp pourrait être un define surchargeable dans le mes_options.php

2) Il pourrait y avoir 2 classes :
- une comme actuellement pour toutes les cellules d'une colonne ne contenant QUE des nombres
- l'une pour toute cellule qui contient un nombre

JLuc