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».
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 by date of activity
29 discussions
Bonjour Bonsoir Bonjoir !
Impossible de déplacer des éléments dans les formulaires par glisser / déposer, que ce soit avec formidable ou champs extra sur une version 3.1.6 de SPIP. Cela dépend visiblement de jQuery Ui bien présent dans plugins-dist donc je poste ici au moins dans un premier temps.
Test en désactivant tous les plugins utilisés et en activant seulement Formidable : même résultat. Tous mes plugins sont à jour... suis-je le seul à rencontrer ce défaut ou d’autres victimes ? :)
Merci d’avance
Reply to this message
merci pour ta reponse je suis nouveau dans spip tu peut m aide en PV ibrabiga@gmail.com merci et Bonne soirée
Reply to this message
salut comment utilise jquery pour mon site spip sans utiliser un plugin ,
ca fait plus d’un mois que je cherche la solution merci
Salut, tout simplement en suivant les instructions de la partie Déclaration hors plugin
de cette documentation :
http://programmer.spip.net/Qu-est-ce-qu-un-pipeline
++
donc je dois cree un plugin.xml pour ca
Non, cf :
++
Reply to this message
Hello.
Pourquoi le plugin SAISIE est-il obligatoire/nécessaire au fonctionnement de ce plugin jQuery UI ?
Le problème est que si j’installe le plugin Saisies pour formulaires, le plugin Bonux pose problème et bloque complètement le site (page blanche et message d’erreur suivant :
Merci d’avance pour l’aide.
Cdt.
À ce que je lis, je crois deviner que tu utilises SPIP 3 et donc tu n’as pas besoin du plugin jQuery UI car il est intégré dans le core à partir de cette version (cf le bloc Compatibilité bien visible en haut de cette page ^^).
Ah non, Spip 2 toujours. On ne souhaite pas passer à la v.3 pour le moment.
Quelle version de SPIP utilises-tu exactement ?
Aucune trace de fichier prive/formulaires/selecteur/generique_fonctions.php dans le core de SPIP 2.0 ou 2.1 (ni même sur la zone) :
http://core.spip.org/projects/spip/repository/show/branches/spip-2.1/prive/formulaires
http://core.spip.org/projects/spip/repository/show/branches/spip-2.0/prive/formulaires
Par contre, ce fichier est bien présent dans SPIP 3 :
http://core.spip.org/projects/spip/repository/entry/branches/spip-3.0/prive/formulaires/selecteur/generique_fonctions.php
Du coup, j’ai comme un doute quand tu me dis que le site est en SPIP 2 :) Vous auriez pas déposé un zip de SPIP 3 par erreur lors d’une dernière mise à jour ?
SPIP 2.1.23 [20601]
Et quelle est l’url du site ?
www.reiso.org
Merci!
Reply to this message
Bonjour,
je voudrais savoir comment installer le plug in easytabs http://os.alfajango.com/easytabs/
dans spip.
j’ai tenté d’intégrer ça à travers un pipeline, dans un fichier mes_options.php mais ça ne semble pas fonctionner.
Bien compliqué d’appeler un script jquery sous spip…
Merci pour votre aide!
Salut, en fait ta question n’a pas de rapport avec jQuery UI et donc le plugin présenté ici.
Il faut que tu regardes du côté du pipeline insert_head pour insérer des scripts persos dans le head de tes pages :
http://programmer.spip.net/insert_head
++
Reply to this message
“jQuery UI pour SPIP” est nécessaire pour “Formidable, le générateur de formulaires” ainsi que : “Bonux”, “Saisies”, “Vérifier”, “YAML”, et “Facteur”.
Mais il n’est compatique que pour SPIP 2.0 et SPIP 2.1…
Pas (encore ?) pour SPIP 3.0…
Est-ce un oubli ou une lacune ?
le plugin est installé par défaut avec SPIP 3 (dans plugins-dist)
Reply to this message
Bonsoir,
la version en téléchargement ici pour SPIP 2.1 semble être une version SPIP 3, avec un paquet.xml et un compatibilite=“[3.0.0;3.0.*]” !
Est-ce que ça ne devrait pas être un zip de la version http://zone.spip.org/trac/spip-zone/browser/_plugins_/jquery_ui ??
Julien
Bonjour,
En effet, je n’arrive pas à installer le plugin sur une version SPIP 2.1.
La version contenue dans le zip est une version 1.8.21 et non 1.8.19 comme le laisse indiquer le lien.
Est-il possible de récupérer quelque part une archive compatible avec SPIP 2.1 ?
Merci d’avance,
Marc
Salut, je viens de changer le nom du zip en attendant mieux :
http://zone.spip.org/trac/spip-zone/changeset/73274
++
C’est parfait !
merci.
Julien
Reply to this message
Hello ici !
J’ai une merdouille sur un site où je cherche à utiliser .tabs. en me basant sur l’exemple suivant seulement Firebug semble ne pas l’entendre de cette oreille :
J’ai d’abord pensé à un oubli de ma part dans la mesure où c’est un des widget qui a besoin d’une sous bibliothèque pour fonctionner MAIS :
<script type="text/javascript" src="#CHEMIN{javascript/jquery-ui/ui/jquery.ui.tabs.js}"></script>
) ne solutionne pas le problème.Une idée les gens ?
Merci d’avance et bonne année à tous !
Ok, PEBKAC !
en fait, l’appel se fait par
<script type="text/javascript" src="#CHEMIN{javascript/ui/jquery.ui.tabs.js}"></script>
je ne sais pas d’où vient ce /ui/jquery-ui que j’ai pourtant bien vu sur http://zone.spip.org/trac/spip-zone/browser/_plugins_/jquery_ui/javascript , le fait est que chez moi ce sous-dossier jquery-ui n’existe pas, bien que je sois pourtant sur la branche spip-3... bref ... :-$
En SPIP 3 jquery_ui est dans le core.
Il n’a plus d’interface de conf pour ne pas encombrer car un squelette ou plugin le nécessitant pour fonction devrait passer par le pipeline adéquat
jqueryui_plugins
ici : http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/jquery_ui/jqueryui_pipelines.php#L14Le chemin que tu cites est dans les plugins-dist du core. Dans le paquet.xml il y a
<chemin path="prive" />
qui prend prive comme si c’était un chemin du path donc les fichiers en question sont dansprive/javascript/ui/...
Voila
Effectivement, tout s’éclaire d’un coup ! Merci Kent1 :)
Reply to this message
Bonjour
J’essaie d’insérer le plugin jqueryui dans spip3. Celui-ci est déjà présent mais je n’arrive pas à l’activer dans les pages publiques. (core, widget position et autocomplete)
Dans mes_options.php j’ai essayé différentes solutions comme stipulées dans la doc ici:
http://programmer.spip.org/Qu-est-ce-qu-un-pipeline
$GLOBALS[’spip_pipeline’][’insert_head’] .= “|prefixPlugin_jquery_plugins”;
function prefixPlugin_jquery_plugins($scripts)
$scripts[] = “javascript/ui/jquery.ui.core.js”;
return $scripts;
ou cela:
function insert_jqueryui($jqueryui_plugins)
$jqueryui_plugins[] = “javascript/ui/jquery.ui.core”;
return $jqueryui_plugins;
Dans les cas ci-desssus, il n’aime pas les [].
Quelle est la bonne méthode pour insérer jquery.ui.XXX dans les pages publiques ? si possible avec la gestion des dépendances.
Si seulement, on pouvait choisir les éléments de UI à insérer depuis la gestion des plugins de spip3!!!
Merci d’avance pour vos réponses et pour le travail réalisé par les différents contributeurs.
Jérôme
Salut, en collant ça dans tonplugin_pipelines.php ça devrait le faire (et en déclarant l’appel du pipeline depuis la paquet.xml) :
++
Quelle rapidité pour répondre!
En fait, ce qu’il me faut, c’est la méthode pour insérer du jqueryUI dans mes squelettes du site publique lorsque je n’utilise pas de plugin.
une insertion dans mes_options.php ?
Merci d’avance
Comme l’indique la très bonne doc de programmer.spip.org :
http://programmer.spip.org/Qu-est-ce-qu-un-pipeline
++
Oui, j’ai vu et ça marche pour insérer une “string dans le flux” comme dans l’exemple, mais là j’ai ce message:
«Fatal error: [] operator not supported for strings in /data/projects/default/html/routage/config/mes_options.php on line 24»
mon code:
«$GLOBALS[’spip_pipeline’][’insert_head’] .= “|insert_jqueryui”;
function insert_jqueryui($jqueryui_plugins)
$jqueryui_plugins[] = “javascript/ui/jquery.ui.core”;
/* $plugins[] = “javascript/ui/jquery.ui.widget”;
$plugins[] = “javascript/ui/jquery.ui.position”;
$plugins[] = “javascript/ui/jquery.ui.autocomplete”;*/
return $jqueryui_plugins;
»
j’ai essayé aussi:
«$GLOBALS[’spip_pipeline’][’jqueryui_plugins’] .= “|insert_jqueryui”;»
Et si tu essayes avec le code que je te propose ?
$GLOBALS['spip_pipeline']['jqueryui_plugins']
et non
$GLOBALS[’spip_pipeline’][’insert_head’]
oui, c’est ce que j’ai précisé en fin de mon message:
Comme l’indique la page de doc que je t’ai pointé :
Je viens de tester le code que je t’ai donné et il fonctionne parfaitement.
Merci pour tes réponses. Je suis donc reparti de zéro et refaisant toute l’installation et en razant mes essais et modifications dans l’appel du pluginUI et c’est OK
Pour résumé, voici le code ajouté dans mes_options.php pour ajouter “autocomplete” dans mes squelettes:
Pour info, pas la peine de demander à SPIP d’insérer les dépendances il le fera tout seul. Donc cela devrait suffire :
Et hop ;)
Reply to this message
bonjour,
je ne sais pas si le pb suivant est lié à jqueryui ou pas, mais j’ai vu plusieurs questions sur des problèmes de version dans les questions sur ce site...
Voila donc ce que je constate
- spip mutualisé avec plusieurs sites utilisant des plugins en commun et d’autres spécifiques à certains site
- SPIP 2.1.10 [17657]
- des sites sous Sarka-SPIP 3.0.4 [40664] ou IJQUERY 1.8.16 fonctionne
- et le site qui me pose pb en ZPIP 1.7.14 et theme HarvestField 1.0
Dans ce dernier, je vois le plugin IJQUERYUI en version 1.6... alors que les plugins sont bien sûr dans le répertoire mutualisé spip/plugin et donc le même pour tous les sites...
résultat, impossible d’installer le noizetier en complément de zspip, puisqu’il me demande ijquery en 1.8.16...
j’ai bien sûr vidé le cache et même supprimer le répertoire tmp/cache de ce site en ftp.. rien n’y fait...
d’ou ma question. ou la page http://monspip/ecrire/?exec=admin_plugin&voir=tous&actualise=1 prend la version d’un plugin installé ? Comment comprendre le fichier plugin.xml de IJQUERYUI qui contient deux parties, une pour spip2.0 l’autre pour spip2.1
tout se passe comme s’il croyait que j’étais sur un spip 2.0.... J’ai essayé de modifier le fichier plugin.xml en ne gardant que la partie spip2.1, ca génère une erreur et il ne voit plus le plugin...
merci d’avance d’une piste...
pam
Reply to this message
Add a comment
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.
Follow the comments:
|
