Ajouter des effets Jquery Drupal 6x

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 à tous,

Je me permet de vous demander votre aide car j'aimerais ajouter divers scripts basé sur Jquery pour mon site, et après avoir éplucher les forums et fait des dizaines de tests pendant des heures...impossible d'arriver à quoi que ce soit.

Il semble que je ne comprend vraiment pas comment ajouter un script dans Drupal...c'et plus compliqué que je croyais ^^

Voici les deux choses que j'aimerai ajouter:

Pouvez-vous me venir en aide?

Merci ;)

Version de Drupal : 
Tags : 

Bonjour,

Certes, il existe divers solutions pour mettre en place une galerie de photo. Mais cependant, l'avantage de drupal et d'autres cmsms, il est possible de coder sa propre galerie.
Ainsi, nous pouvons faire avec imagefield, bien configuré, récupérer les images dans le dossier prédéfini en php et le coder dans ton propre template de node ou autre. C'est assez facile à faire.
Pour ce qui d'inclure ton js, il suffit soit de l'inclure dans ton page.tpl.php ou alors dans theme.info.

ps: pour tout ce qui est JS reste dans la librairie Jquery. Si tu utilises d'autres librairie tels que Mootools ou aculo, je pense que tu risques de galérer pour la compatibilité avec Jquery même si il existe un module dans drupal 6 (Jquery mode compatible).

Si tu as d'autre question, n'hésite pas à me contacter !

Cordialement,

Bonjour compléter ce que tu dis cestra 13, pour inclure un script à partir de theme.info la syntaxe est la suivante :

scripts[] = chemin_de_ton_scripts/script.js

L'idéal est alors de se constituer un répertoire script au sein de ton thème dans lequel tu places l'ensemble de tes fichiers js.
Cette méthode chargera les scripts sur l'ensemble des pages de ton site. Elle permet de profiter de la fonctionnalité de compression des scripts proposée dans la gestion des performance en standard, ce dont je suis moins sûr avec le méthode d'inclusion dans les fichiers tpl.php.

Si tu veux que ton script ne soit chargé que sur certaines page, effectivement tu peux utiliser les fichiers tpl.php ou une fonction tontheme_preprocess_page dans le fichier template.php avec une ligne du style :

<?php
// définition de la condition de chargement du script
// ici on ne charge le fichier que pour les utilisateurs anonymes
if(!$vars['logged_in']) {
 
// on ajoute le fichier de script
 
drupal_add_js(drupal_get_path('theme', 'tontheme') . '/scripts/script.js');
 
// on recharge les scripts
 
$vars['scripts'] = drupal_get_js();
  }
?>

L'avantage de cette dernière méthode par rapport au fichier tpl.php est qu'à priori la compression des fichiers javascripts fonctionne également.

A+

A+

Bonjour cestra13,

J'aimerais ajouter des effets qui ne sont pas inclus dans la bibliothèque de base, en l'occurence ce plug in Jquery à Drupal (http://buildinternet.com/2009/02/supersized-full-screen-backgroundslides...).

Comment dois-je m'y prendre? Je n'arrive pas à saisir, et après moults tests, je me résous à demander de l'aide...

Merci,

Cordialement,

JR

Bonjour Jean-Rémy,

Je suis désolé de te répondre que maintenant.

Alors, j'ai vu une démonstration du plugin que tu veux utiliser. Je suppose que tu vas mettre cette démo sur une page particulière, comme galerie de photos. Ainsi, tu dois créer un type de contenu dans l'administration de drupal, (ex : gal_photo) et ensuite créer ton template.

Dans ton template tu peux créer des fonctionnalités en php (je te conseille de le coder en premier temps directement dans ton fichier mais par la suite de les mettre dans ton template.php.)

Le principe est simple c'est de faire une boucle .

J'espère que c'est un truc comme ca que tu voulais faire. Sinon réexplique moi mieux ou pire trouve moi un exemple concret pour que je puisse t'aider.

Crd,

Bonjour cestra13,

Merci de la réponse. je pensais au début l'utiliser pour une galerie photos, mais je veux juste m'en servir pour change de background, donc valable sur toutes les pages. Si j'ai bien compris, je dois insérer le code jquery dans mon template.php ou page.tpl.php, c'est cela?

Ai-je besoin de mettre le code dans le fichier info?

Merci pour ton aide,

Jean-Rémy,

Je ne sais pas si tu connais bien drupal, mais je ne pense pas.

Je vais reprendre, ton fichier js tu peux l'inclure directement dans ton template page.tpl.php (cas le plus simple), ou alors dans ton fichier info (légèrement plus compliqué car des fois ca ne fonctionne pas), et enfin dans ton template.php (facile) par l'intermédiaire : drupal_add_js.

Pour le mode développement, je te conseille de le mettre dans ton template page.tpl.php pour tester.
Pour info, il ne faut pas oublier d'installer le module Jquery ...

Si je peux encore t'aider, n'hésite pas...

cestra13

Bonjour

Je reviens un peu tardivement sur ce poste.

1. Jquery dans drupal :

la librairie jquery est fournie en standard dans drupal. Par contre, il s'agit pour D6 de la version 1.2 qui commence à dater un peu. Il n'y a donc pas de module jquery à installer.

Il est possible d'updater cette version en utilisant le module jquery_update qui permet de passer à la version 1.3.2 (toujours pour D6) qui date un peu également. Il existe des solutions pour pouvoir passer à la 1.4 voir la 1.5 mais qui nécessitent quelques compétences techniques.

A toi de voir quelle est la version de jquery nécessaire au fonctionnement de ton plugin.

Tu auras par contre besoin d'installer le script du plugin que tu veux utiliser à moins qu'un module drupal correspondant existe.

2. Appel de script js dans drupal :

Cette partie concerne autant les scripts maisons que les scripts de plugin que l'on veut ajouter.

J'insiste sur le fait qu'en production il vaut mieux passer soit par le fichier monTheme.info (cf mon post plus haut) ou par un une fonction drupal_add_js() à placer soit dans un module soit dans le fichier template.php du thème.

L'avantage de la seconde méthode est que l'on peut définir des conditions d'appel du script (en fonction du type de page par exemple).

Cette procédure permet d'intégrer parfaitement les scripts au fonctionnement global et évite ainsi des problèmes par la suite en terme de maintenance ou d'optimisation des performances (si je ne me trompe pas seuls les scripts appelés par l'une ou l'autre de ces procédures peuvent ensuite être compressés par l'optimisation js native sous drupal).

Du coup autant le mettre en place directement dès la phase de développement (ce n'est pas un travail énorme)

N'hésitez pas à me demander des éclaircissements.

Bon courage

Tim