Utilisation de jQuery

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,
Je souhaite créer un petit module maison utilisant jQuery
(Vu qu'il y a de tout et n'importe quoi sur internet, avez-vous un petit tuto sympa pour créer un module ?)

Mais surtout, ma question c'est quel fichier.js à importer dans mon script afin d'utiliser la même librairie jQuery qu'utilise drupal ?

Module jQuery Update installé.

Merci d'avance...

Version de Drupal : 

Ah ouai mais non, mon soucis maintenant, c'est que je souhaite utiliser jquery UI. J'ai installé le module jquery UI, tout est préchargé aussi ?

Je souhaite mettre en place un petit système qui requiert jquery UI, un script js, et un css.
Comment faire pour le mettre en fonctionnement ?
Où placer le fichier js ?
Où placer le css ?
Sachant que mon "petit système" ne sert que sur une seule page du site.
Je suis confronté à des conflits entre le css du theme et celui que je souhaite mettre en place..

Un tuto ? je n'en ai pas trouvé

Salut,

As tu trouvé des solutions depuis??

Je suis confronté plus ou moins au meme problème, j'essaie d'injecter certaines fonctions jquery dans mon site drupal.
Comme je ne suis pas un pro de la création de module je pense que je dois certainement m'y prendre mal.

Pour l'instant, ce que j'essaie de faire c'est d'ouvrir dans une fenetre de dialog (appel au widget dialog() de jquery) certains de mes contenus.

Pour cela j'ai creer un template du type: node-.tpl.php, à partir de ce template, j'appel les script jquery (telechargés sur jquery.com) concernés via la fonction drupal_add_js(.....).
Je fais aussi appel à un script js "maison" qui est ensuite chargé d'appliquer les fonctions souhaitées sur mon contenu en question.

Je pense que ce n'est pas propore du tout ce que je fais , mais comme je ne suis pas tres habitué à jQuery et que j'ai du mal à trouver de la doc compréhensible, j'essaie de me debrouiller au mieux.

Pour l'instant je bloque pas mal sur le changement de thème de ma fenêtre de dialog, je ne sais pas comment changer le theme par defaut de cette fenetre.

Si tu as trouvé des pistes pour faire un module proprement avec du jQuery je suis preneur.

Je te remercie d'avance.

Hello,

Effectivement, jQuery est embarqué dans Drupal et jQuery UI est embarqué dans le module http://drupal.org/project/jquery_ui. Cela dit, attention aux versions ainsi embarquées car elles sont assez anciennes, et il est possible que certains plugins ne soient pas compatibles...

Ensuite, pour référencer des fichiers JavaScript et CSS supplémentaires dans vos pages web (ces fichiers contenant VOTRE code jQuery et VOS css), le plus simple est d'ajouter les lignes suivantes dans le fichier .info de votre thème :

stylesheets[all][] = maCss1.css
stylesheets[all][] = maCss2.css
...
scripts[] = monJavaScript1.js
scripts[] = monJavaScript2.js
...

Les fichiers doivent se trouver dans le répertoire de votre thème, et il faut vider le cache de Drupal après avoir modifié le fichier .info.

Les CSS/JS ainsi référencés sont ensuite chargés sur toutes les pages du site (dommage), mais une fois compressés et mis en cache par le navigateur, ce n'est pas trop gênant.

Cela dit, avant d'aller jusque là, n'oubliez pas qu'avec n'importe quel thème de base, vous avez droit sans rien faire à un fichier style.css pour les CSS et un fichier script.js pour le JavaScript. Drupal référencera automatiquement ces fichiers s'ils existent dans le répertoire de votre thème.