Dois-je simplement coller le code dans le fichier de modèle principal, ou existe-t-il un autre moyen recommandé d'attacher de nouveaux plugins Jquery dans Drupal 7?
javascript
Vonder
la source
la source
drupal_add_js
( api.drupal.org/api/drupal/includes--common.inc/function/… ).Réponses:
Le moyen le plus simple consiste simplement à l'ajouter au fichier .info de votre thème:
La seule exception est si vous ajoutez une ressource externe (CDN / script hébergé), auquel cas vous devez utiliser drupal_add_js (), comme expliqué par Jamie Hollern
la source
Uncaught TypeError: undefined is not a function
drupal_add_library()
Drupal a fourni Jquery avec.
Pour ajouter un fichier js, vous pouvez utiliser drupal_add_js de la manière décrite dans d'autres articles.
Cela fonctionnera dans des cas simples, mais si vous commencez à avoir des plugins qui dépendent d'autres plugins. vous voudrez peut-être regarder l' api des bibliothèques . Je m'attends à ce que des modules soient créés pour prendre en charge les bibliothèques populaires, il y en a pour l' interface utilisateur JQuery intégrée, voir system_library () .
Dans cet exemple, pour inclure le module jQuery ui.accordion, vous pouvez utiliser drupal_add_library ()
Cela garantira que le js est inclus avec le CSS et toutes les bibliothèques qui en dépendent. Il s'assurera également que les bibliothèques ne sont incluses qu'une seule fois.
Si vous dites quelle bibliothèque vous utilisez, je peux fournir un exemple de code pour savoir comment le définir
Donc, créez d'abord un module pour définir la bibliothèque (appelez-le qtip) et téléchargez le module dans un dossier js sous le dossier du module
puis implémentez hook_library ()
Ensuite, pour ajouter le fichier mis dans votre code
Cela peut être exagéré pour une bibliothèque simple, mais si vous devez gérer un grand nombre de bibliothèques sur plusieurs sites et thèmes, cela vous facilite la vie.
la source
Si vous souhaitez charger le script uniquement sur certaines pages (pas toutes), vous pouvez l'ajouter via votre fichier template.php. Ajoutez simplement un code similaire à celui-ci:
Je n'ai testé cela que dans Drupal 6.
la source
Vous pouvez ajouter un fichier JavaScript au thème que vous utilisez dans le site Drupal, en ajoutant une
script[] =
ligne dans le fichier .info du thème que vous utilisez. Je considérerais ce cas uniquement si vous utilisez un thème personnalisé ou une version modifiée d'un thème existant qui a été renommé; Je ne suggérerais pas de le faire si vous utilisez, par exemple, Garland. Le faire dans de tels cas signifierait perdre toutes les modifications à chaque mise à jour du thème, ou copier les fichiers de thème mis à jour, puis réappliquer les mêmes modifications appliquées à la version précédente des fichiers; si le changement n'ajoute qu'unescript[]
ligne, alors le changement est minime, et cela pourrait valoir la peine, mais cela signifierait également que les fichiers JavaScript ne sont pas ajoutés dans le répertoire contenant les fichiers de thème, ou vous devez ajouter les fichiers JavaScript tous les heure à laquelle le thème est mis à jour.Vous pouvez également créer un module personnalisé ou ajouter du code à un module personnalisé existant que vous utilisez déjà pour ce site.
Le pro est que les fichiers JavaScript seraient ajoutés à chaque thème est défini par défaut, ou thème d'administration, sans qu'il soit nécessaire de modifier tous les thèmes activés sur le site, et que les utilisateurs peuvent sélectionner eux-mêmes.
Comme déjà signalé dans une autre réponse,
hook_init()
c'est le crochet que vous devez implémenter. J'ajouterai quehook_library()
c'est le nouveau crochet ajouté dans Drupal 7 pour les fichiers Javascript comme les plug-ins jQuery.la source
Vous pouvez utiliser le module Js Injector pour ajouter des scripts directement dans le panneau d'administration Drupal. Alternativement, vous pouvez utiliser la fonction drupal_add_js () pour ajouter votre fichier js à votre page.
la source
Vous pouvez créer un module personnalisé simple et l'ajouter de cette façon. Le code serait semblable au suivant:
la source
Vous pouvez simplement utiliser dans
YOURTHEME_preprocess_theme()
si vous souhaitez appliquer une condition logique:drupal_add_js(drupal_get_path('theme','your_theme').'/js/yourplugin.js');
et ajoutez également dans le fichier yourtheme.info:
scripts[] = js/yourplugin.js
la source
Si vous utilisez le module Context, installez Context Add Assets. Configurez un contexte global ou un contexte spécifique et ajoutez une nouvelle réaction pour ajouter l'actif JS par chemin ou par module.
Aucun codage requis.
la source
Il existe de nombreuses bibliothèques externes qui doivent être incluses de nos jours.
Les placer tous dans le répertoire js du thème n'est pas toujours souhaitable car parfois ces bibliothèques sont composées de plusieurs fichiers js et de plusieurs fichiers css.
J'ai fini par utiliser la
libraries_get_path
fonction du module de bibliothèques pour prendre leurs chemins depuis le répertoire sites / all / bibliothèques:Voici comment j'ai ajouté des fichiers sélectionnés liés à textext.js:
J'aimerais savoir s'il existe un référentiel externe dans lequel toutes ces bibliothèques sont prédéfinies, je n'aurai donc pas à les définir chacune manuellement.
la source
Je vous recommande de charger jQuery à partir du pupille Google CDN. Consultez ce lien pour plus d'informations: http://code.google.com/apis/libraries/devguide.html#jquery . Assurez-vous de ne pas charger le même script plusieurs fois dans votre site.
la source
c'est ce qui a fonctionné pour moi, pas besoin de créer un module pour un plugin jQuery ou d'en installer un - dans mon template.php j'ai ajouté:
la source
une autre façon consiste à ajouter le code suivant au fichier
page.tpl.php drupal_add_js (drupal_get_path ('theme', 'path / to / your / plugin'). '/plugin.js', 'file');
la source