[spip-dev] bug parametre_url() sur reconnaissance des tableaux

Hello,

parametre_url() en mode "lecture" reconnait les tableaux mais seulement *partiellement*.

Au niveau de la norme des URL, avoir quelque chose comme :
url?machin=bidule&truc[1]=chouette&truc[gasp]=gaspation
est parfaitement valide

Pourtant, parametre_url() ne reconnait QUE quand il n'y a jamais de clé : truc[]=machin

url?machin=bidule&truc[]=chose&truc[]=chouette&truc[]=gaspation
parametre_url($url, 'truc')
=> array('chose', 'chouette', 'gaspation')

url?machin=bidule&truc[1]=chose&truc[]=chouette&truc[machin]=gaspation
parametre_url($url, 'truc')
=> array('chouette') !

Au moins c'est le même comportement en PHP et Javascript.

Mais d'après moi, je ne vois aucune raison pour ne pas accepter l'écriture toute à fait valide avec des clés précisées (et que donc PHP transforme parfaitement bien quand on regarde le $_GET['truc'] ou avec _request('truc') !)

Par ailleurs, je trouve cette fonction plugin de jQuery, qui est documentée et unit-testée :
http://benalman.com/code/projects/jquery-bbq/examples/deparam/?truc[gasp]=gaspation

Et le code est là :
https://github.com/cowboy/jquery-bbq/blob/master/jquery.ba-bbq.js#L444

(Ce qui permet d'avoir tout le $_GET mais dans un objet Javascript quoi. Alors que parametre_url() ne permet que d'avoir la valeur d'un nom qu'on connait déjà ! Et cette libraire gère très bien les tableaux ayant des clés.)

Hello,

la fonction est spécifiée via le test unitaire ici
http://zone.spip.org/trac/spip-zone/browser/core/tests/unit/utils/parametre_url.php

je t'invite à le complèter avec les cas tests que tu proposes, notamment en mixant les clés numériques et alpha, et en prenant en compte des cas où les valeurs peuvent contenir aussi des crochets, pour que l'on puisse faire évoluer la fonction sans casse.

Du point de vue JS on pourrait se reposer sur autre chose, mais dans la mesure où l'on maintient la fonction en PHP j'avais fait le choix d'utiliser la même fonction avec la même spec côté JS.