Encapsuler toutes les variables JS utiles à SPIP (et plugins !) dans une même globale extensible #4531

Open
opened 2020-07-23 16:19:11 +02:00 by rastapopoulos · 3 comments

Actuellement SPIP ajoute un "jQuery.spip" mais c'est surtout pour des fonctions. Pour les données à partager, les configs, ce serait mieux un truc sans rapport avec jQuery. Drupal a une globale "drupalSettings" qui encapsule tout, noyau ou plugin, et ensuite chacun peut y rajouter ce qui lui est nécessaire.

Donc nous ça serait bien d'avoir une variable "spipConfig", même si pour l'instant il n'y a pas beaucoup à y mettre, ça permet d'avoir dès maintenant un cadre propre. Ça permet de toujours savoir où ajouter nos choses et s'assurer que ça sera jamais en conflit. Ça vaut par ex pour la marge ajoutée lors des défilements, ou tout autre variables comme ça dont on aurait besoin dans le JS. Peut-être même qu'on pourrait imaginer pré-remplir avec tout spip_meta au démarrage ? (mais je ne sais pas si utile)

Après on l'utilise dans n'importe quelle fonction de n'importe quel niveau, avec "spipConfig.XXX" … "spipConfig.XXX.YYY" … Le cas le plus courant c'est qu'on met nos variables dans un objet du préfixe du plugin : spipConfig.core.positionner_offset=100 , spipConfig.patates.forme="frite" (tout comme il y a lire_config('patates/forme')

Actuellement SPIP ajoute un "jQuery.spip" mais c'est surtout pour des fonctions. Pour les données à partager, les configs, ce serait mieux un truc sans rapport avec jQuery. Drupal a une globale "drupalSettings" qui encapsule tout, noyau ou plugin, et ensuite chacun peut y rajouter ce qui lui est nécessaire. Donc nous ça serait bien d'avoir une variable "spipConfig", même si pour l'instant il n'y a pas beaucoup à y mettre, ça permet d'avoir dès maintenant un cadre propre. Ça permet de toujours savoir où ajouter nos choses et s'assurer que ça sera jamais en conflit. Ça vaut par ex pour la marge ajoutée lors des défilements, ou tout autre variables comme ça dont on aurait besoin dans le JS. Peut-être même qu'on pourrait imaginer pré-remplir avec tout spip_meta au démarrage ? (mais je ne sais pas si utile) Après on l'utilise dans n'importe quelle fonction de n'importe quel niveau, avec "spipConfig.XXX" … "spipConfig.XXX.YYY" … Le cas le plus courant c'est qu'on met nos variables dans un objet du préfixe du plugin : spipConfig.core.positionner_offset=100 , spipConfig.patates.forme="frite" (tout comme il y a lire_config('patates/forme')
Owner
No description provided.
Author
Owner
No description provided.
Author
Owner

En attendant le code, explication de comment faire mieux dans la PR de #4445 ici : #128

En attendant le code, explication de comment faire mieux dans la PR de #4445 ici : https://git.spip.net/spip/spip/pulls/128
b_b modified the milestone from 4.1 to 4.2 2023-10-12 20:10:27 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: spip/spip#4531
No description provided.