Hello
SPIP permet d'utiliser les tables non déclarées pour BOUCLEr,
et les crayons marchaient jusqu'à peu pour leur édition en ligne.
Il semble que ça ait régressé puisque désormais,
les modifications faites avec les crayons ne sont pas enregistrées lors de leur validation.
L'édition se fait bien, tout à l'air bien, mais l'enregistrement ne se fait pas.
Je ne sais pas si la régression vient d'une évolution de SPIP
(ici SPIP 3.3.0-dev [24422] donc 3.3 mais pas tout jeune)
ou des crayons.
Quelqu'un a t il aussi constaté cela ou a une idée de l'origine de cette impossibilité ?
Heureusement il y a une alternative: les fonctions revision_typobjet et typobjet_revision https://git.spip.net/spip-contrib-extensions/crayons/src/commit/6533c1af7b87c00f70e0f171787f05c53c64b70b/action/crayons_store.php#L257 et suivantes
C'est étonnant qu'à la fois les fonctions revision_typobjet et typobjet_revision soient gérées (ya un motif ?)
C'est facile à installer pour qui code en php, mais avant c'était 0-code-php pour tous.
On peut en rester là ou vouloir restaurer un accès 0-code aux crayons sur les objets non déclarés...
Ah sorry, j’ai pas eu du tout l’intention de casser quoi que ce soit.
Si je lis le code, je pense que le bug vient de la modif de la ligne 480
if (is_scalar($id) and count($where)>1)
qui devrait être
if (is_scalar($id) and count($where)>=1)
J’ai ajouté la condition sur count($where) par sécurité, mais du coup j’ai ajouté un bug à cet endroit
Je te laisse vérifier que ça corrige bien ton bug et commit le cas échéant !
Si je lis le code, je pense que le bug vient de la modif de la ligne 480
if (is_scalar($id) and count($where)>1)
qui devrait être
if (is_scalar($id) and count($where)>=1)
Oui ça restaure les crayons 0-code sur (certains) objets non déclarés.
Merci pour ta réactivité !
Je vais commit le fix.
JLuc