Cédric
cedric.morin@yterium.com a écrit :
As tu une version RC1 ou es-tu sur la branche dev ?
Ce bug a été corrigé, au moins sur la branche RC1...
La RC1 c'est celle de branches/spip-2.0/ ?
Si oui, j'ai refais une installation vierge dans le doute:
Mais entre la dev et la rc1, le code de inc/legender est le même, et rajoute un quatrième argument au arg sur l'action documenter qui n'est pas compris par la regexp.
J'ai vu que dans http://trac.rezo.net/trac/spip/changeset/13183/branches/spip-2.0/ecrire/inc/legender.php tu dis corriger le problème, mais ça ne le fait pas.
Pourquoi rajouter ce quatrième argument, pourquoi uniquement sur un exec non *_edit et quand $ancre=='documents', ça je n'arrive pas à le comprendre.
Ce code spaghetti est devenu completement incompréhensible et in-maintenable. Bourrés de cas dérogatoires, de branches parrallèles (ajax/pas ajax, images/documents/ espace privé/pas espace privé...) toutes combinatoires, dont on ne teste évidemment jamais chaque cas.
Une horreur qu'il faudra très vite faire disparaître maintenant qu'on a un schema de developpement pour ce type de formulaire.
Et si tu n'as pas mis le nez dans le action/joindre qui va derrière, tu peux t'estimer un homme heureux.
Mais le portage est loin d'être trivial et demande un peu de temps et de tests.
J'avais prévu de le faire pour la 2.0, mais ça n'a pas été possible.
Investigation:
http://trac.rezo.net/trac/spip/changeset/11080 rajoute ce 4ème argument en rajoutant bien dans inc/documenter la regexp qui va bien:
!preg_match(",^(-?)(\d+)\W(\w+)\W?(\d*)\W?(\d*)$,"
mais http://trac.rezo.net/trac/spip/changeset/12472/spip/ecrire/action/documenter.php revient sur cette décision et remet
preg_match(",^(-?)(\d+)\W(\w+)\W?(\d*)$,"
Ce qui n'est plus compatible avec le changement dans inc/legender.php
Alors à mon avis, soit il faut remettre la bonne regex dans action/documenter, soit effacer la ligne dans inc/legender
Plutot ça, probablement. Tu peux essayer, et si c'est ok, envoie le patch dans un ticket.
Cédric