Introduction
De plus en plus de plugins intègrent dans leurs fichiers des morceaux de la bibliothèque jQuery UI et ce dans des versions plus ou moins à jour imposant ainsi de temps à autre plusieurs versions de cette bibliothèque en fonction du nombre de plugins installés sur un site (voir désormais jQuery UI pour SPIP 3).
Afin de pallier ce problème, deux solutions sont possibles :
- L’ajout de la bibliothèque en question dans le core de SPIP (très certainement dans une prochaine version)
- La création d’un méta plugin s’occupant de gérer correctement cette bibliothèque et sur lequel l’ensemble des plugins ayant besoin d’une partie de celle-ci puisse se reposer. C’est l’objet du plugin « jQuery UI pour SPIP ».
Historique
Le plugin jQuery UI a été développé en tant que plugin pour SPIP 2
Il a été intégré comme plugin-dist dans SPIP 3
A partir de SPIP 4 c’est de nouveau un plugin autonome
Son fonctionnement
Après l’avoir activé, vous pouvez personnaliser le plugin via sa page de configuration (disponible si vous avez installé le plugin CFG). Celle-ci liste l’ensemble des sous-bibliothèques disponibles (droppable, draggable, tabs....).
Il vous suffit de sélectionner celles dont vous avez besoin et elles seront automatiquement ajoutées au pipeline jquery_plugins
de SPIP (plus d’informations sur le site Programmer avec SPIP) qui est lui même utilisé par la balise #INSERT_HEAD
(Cela signifie donc que vos squelettes doivent utiliser cette balise pour que le plugin fonctionne).
Dans le cas où vous souhaitez utiliser une sous-bibliothèque qui dépend d’autres sous-bibliothèques de jQuery UI (comme Tabs par exemple), les dépendances seront automatiquement sélectionnées à la validation du formulaire de configuration. Il n’est donc pas nécessaire de les vérifier.
Utilisation depuis un autre plugin
Si vous souhaitez développer un plugin qui nécessite une ou plusieurs sous-bibliothèques de jQuery UI, la démarche est relativement simple.
Tout d’abord, il est nécessaire d’ajouter un élément <necessite ... />
à votre plugin.xml
(cf documentation) comme ceci :
<necessite id="jqueryui" version="[1.8.5;]" />
Ensuite, le plugin SPIP jQuery UI déclarant son propre pipeline d’ajout de sous-bibliothèques, jqueryui_forcer
, il suffit d’ajouter les sous-bibliothèque que l’on souhaite utiliser comme ceci (dans l’exemple, on utilise monplugin
comme préfixe de notre plugin imaginaire, on souhaite utiliser la sous-bibliothèque jquery.ui.tabs
) :
function monplugin_jqueryui_forcer($scripts){
$scripts[] = "jquery.ui.tabs";
return $scripts;
}
La sous-bibliothèque « tabs » nécessite en fait deux autres sous-bibliothèque normalement :
-
jquery.ui.core
-
jquery.ui.widget
Il n’est donc pas nécessaire de les déclarer car le plugin le fera automatiquement.
Si après avoir activé notre nouveau plugin on se dirige vers la page de configuration du plugin jQuery UI, on se rend compte que les 3 sous-bibliothèques activées par le plugin « monplugin » sont cochées et non désactivables, évitant ainsi tout problème potentiel de désactivation manuelle d’une sous-bibliothèque.
Liste des sous-bibliothèques disponibles
Documentation et démonstrations : http://jqueryui.com/demos/
SPIP 2.1 | SPIP 2.0 |
---|---|
jquery.ui.datepicker
jquery.ui.accordion jquery.ui.autocomplete jquery.ui.autocomplete jquery.ui.button jquery.ui.dialog jquery.ui.dialog jquery.ui.draggable jquery.ui.droppable jquery.ui.droppable jquery.ui.mouse jquery.ui.progressbar jquery.ui.resizable jquery.ui.selectable jquery.ui.slider jquery.ui.sortable jquery.ui.tabs jquery.effects.blind jquery.effects.bounce jquery.effects.clip jquery.effects.drop jquery.effects.explode jquery.effects.fold jquery.effects.highlight jquery.effects.pulsate jquery.effects.scale jquery.effects.shake jquery.effects.slide jquery.effects.transfer |
ui.accordion
ui.datepicker ui.dialog ui.dialog ui.dialog ui.draggable ui.droppable ui.droppable ui.resizable ui.selectable ui.slider ui.sortable ui.tabs effects.blind effects.bounce effects.clip effects.drop effects.explode effects.fold effects.highlight effects.pulsate effects.scale effects.shake effects.slide effects.transfer |
Discussions par date d’activité
2 discussions
Bonjour,
Dans la version jQuery UI 1.15.2 il y a l’appel suivant en ligne 45 et 59 du fichier jqueryui_pipelines.php
Néanmoins, le fichier jquery-ui.css n’existe pas dans le dossier « css/ui » du plugin, il n’y a que le fichier jquery-ui-structure.css.
Serait-il possible de l’ajouter ?
Répondre à ce message
Bonjour,
Pour info, la version 1.15.1 ne fonctionne pas avec Spip 4.0.8, il faut prendre la 1.14.3.
De plus, elle n’est pas proposée dans l’ajout de plugins depuis l’espace privé.
Est-ce normal ?
> Pour info, la version 1.15.1 ne fonctionne pas avec Spip 4.0.8, il faut prendre la 1.14.3.
C’est bien ce qui est prévu cf https://git.spip.net/spip/jquery_ui/src/branch/1.14/paquet.xml
> De plus, elle n’est pas proposée dans l’ajout de plugins depuis l’espace privé.
Oui, ce plugin fait partie des plugins du core, il est disponible dans le dépôt dédié https://files.spip.org/core/archives.xml cf https://plugins.spip.net/spip.php?page=depots
Merci pour l’info.
En fait, ma remarque vient du fait que lors de l’activation du « Sélecteur générique »
Sélecteur générique avec autocomplétion
il indique qu’il faut JQueryUI, mais il ne propose pas de l’installer.
Il faut donc ajouter le dépôt
https://files.spip.org/core/archives.xml
pour qu’il soit proposé ?
> Il faut donc ajouter le dépôt https://files.spip.org/core/archives.xml pour qu’il soit proposé ?
Oui :)
Merci b_b
Je viens de le faire et il me propose la mise à jour
Une mise à jour fonctionnelle est disponible (1.15.1).
Étant avec un Spip 4.0.8, cela ne devrait pas être le cas.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |