Encapsuler toutes les variables JS utiles à SPIP (et plugins !) dans une même globale extensible
#4531
Open
opened 3 years ago by rastapopoulos
·
3 comments
No Branch/Tag Specified
master
4.2
4.1
dev/issue_5560_dispositions_prive
issue_5095
4.0
3.2
dev/issue_4626_menu_squelettes
fix_issue_5454
issue_5427_bis
coquille_doc
issue_5344
dev/hasard_fixe
issue_4836
debug_ecrire_fichier
fix_modifier_login
dev/instituer_ergo
dev_infos_image
fix/valider_url_distante
issue_4946
3.1
boutons-danger
issue_4717
dev-sortable
issue_4705
dev/autoloader
issue_4678
issue_4101
3.0
2.1
2.0
1.9.2
1.9.1
1.8
v4.2.2
v4.1.9
v4.0.11
v3.2.19
v4.2.1
v4.1.8
v4.0.10
v3.2.18
v4.2.0
v4.2.0-alpha2
v4.2.0-alpha
v4.1.7
v4.1.6
v4.0.9
v3.2.17
v4.1.5
v4.1.4
v3.2.16
v4.0.8
v4.1.3
v3.2.15
v4.0.7
v4.1.2
v4.0.6
v4.1.1
v4.1.0
v4.1.0-rc
v4.0.5
v3.2.14
v4.1.0-beta
v4.1.0-alpha
v3.2.13
v4.0.4
v4.0.3
v4.0.2
v3.2.12
v4.0.1
v4.0.0
v4.0.0-beta
v4.0.0-alpha
v3.2.11
v3.2.10
v3.1.15
v3.2.9
v3.1.14
v3.1.13
v3.2.8
v3.2.7
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0-beta.3
v3.2.0-beta.2
v3.2.0-beta
v3.2.0-alpha.1
v3.2.0
v3.2-alpha.1
v3.1.9
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.12
v3.1.11
v3.1.10
v3.1.1
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc
v3.1.0-beta
v3.1.0-alpha
v3.1.0
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.28
v3.0.27
v3.0.26
v3.0.25
v3.0.24
v3.0.23
v3.0.22
v3.0.21
v3.0.20
v3.0.2
v3.0.19
v3.0.18
v3.0.17
v3.0.16
v3.0.15
v3.0.14
v3.0.13
v3.0.12
v3.0.11
v3.0.10
v3.0.1
v3.0.0-rc
v3.0.0-beta.2
v3.0.0-beta
v3.0.0-alpha.1
v3.0.0
v2.1.9
v2.1.8
v2.1.7
v2.1.6
v2.1.5
v2.1.4
v2.1.30
v2.1.3
v2.1.29
v2.1.28
v2.1.27
v2.1.26
v2.1.25
v2.1.24
v2.1.23
v2.1.22
v2.1.21
v2.1.20
v2.1.2
v2.1.19
v2.1.18
v2.1.17
v2.1.16
v2.1.15
v2.1.14
v2.1.13
v2.1.12
v2.1.11
v2.1.10
v2.1.1
v2.1.0
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.3
v2.0.26
v2.0.25
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.2
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.1
v2.0.0
v1.9.2+p
v1.9.2+o
v1.9.2+n
v1.9.2+m
v1.9.2+k
v1.9.2+j
v1.9.2+i
v1.9.2+h
v1.9.2+g
v1.9.2+f
v1.9.1+i
v1.8.3+b
Labels
Clear labels
Amélioration, nouvelle fonctionnalité
Ca ne fonctionne pas
Ce ticket est un doublon
Ticket invalide
Ignoré, c'est comme Ca...
Apply labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité
APIs
authentification
base de données
bug
Ca ne fonctionne pas
code généré
compilo
css
divers
documentation
doublon
Ce ticket est un doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
Ticket invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
Ignoré, c'est comme Ca...
sécurité
traduction
à confirmer
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
à confirmer
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Set Project
Clear projects
No project
Assignees
Assign users
Clear assignees
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
Reference in New Issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
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')
En attendant le code, explication de comment faire mieux dans la PR de #4445 ici : #128