Passage de serialize à JSON pour le stockage en base
Ping @rastapopoulos proposition de résolution pour #99 (closed).
Les choix effectués :
- on utilise désormais json_encode pour tout tableau stocké en base, à savoir :
- saisies d'un form
- traitements d'un form
- valeur de réponse pour un champ multivalué (type case à cocher)
- on ne procède pas à une conversion retrospective lors de la maj du plugin, pour éviter une mise à jour trop longue
- à place on convertit "à la volée", lorsqu'on modifie la valeur de l'un des elements listés ci-dessus
- on utilise le filtre tenter_unserialize, amélioré, pour tenter tantot un
json_decode()
, tantot ununserialize()
Autre point : je me suis apercu que les 2 traitemnts livrés par défaut deserializé eux même les saisies. J'ai décidé de passer du coup systématiquement de manière deserializé comme arguements au traitements, de même que les réglages des traitements eux-même.
A faire : faire un grep sur la zone dans tous les plugins "formidable" sur serialize, et voir s'il y a des choses à adapter.
Avec cela on peut très facilement utilisé des emojis.
En complément, on peut adopter https://git.spip.net/spip-contrib-extensions/saisies/pulls/184 (qui permet, si on modifie une réponse qui contient un emoji, d'avoir l'emoji bien affiché, et pas l'entité numérique HTML).