J'ai créé un script de calcul des coûts et je souhaite l'utiliser sur mon site Drupal 7.
J'ai entendu parler de drupal_add_js
, mais je ne sais pas dans quel contexte.
Utilisez une fonction dans le fichier template.php: yoursite.com/sites/all/themes/YOUR_THEME/template.php
Ajoutez un fichier JS dans un bloc:
function YOUR_THEME_preprocess_block(&$variables) {
drupal_add_js(drupal_get_path('theme', 'MYTHEME') .'/scripts/path');
}
Ajouter un fichier JS à un page ou nœud:
function YOUR_THEME_preprocess_page(&$variables) {
if ($variables['nid'] == 'INSERT_NODE_ID') {
drupal_add_js(drupal_get_path('theme', 'MYTHEME') .'/scripts/path');
}
}
Ajoutez un fichier JS à un type de contenu:
function YOUR_THEME_preprocess_node(&$variables) {
if ($variables['type'] == 'INSERT_CONTENT_TYPE') {
drupal_add_js(drupal_get_path('theme', 'MYTHEME') . '/scripts/path');
}
}
Ajoutez un fichier JS à une vue:
function YOUR_THEME_preprocess_views_view(&$variables){
if ($variables['name'] == 'INSERT_VIEW_MACHINE_NAME') {
// include javascript
drupal_add_js(drupal_get_path('theme', 'MYTHEME') . '/scripts/path');
}
}
Comme mentionné par @Pierpaolo Cira, vous pouvez toujours remplacer MY_THEME
Par MY_MOUDLE
. Pour obtenir le chemin d'accès à votre module, vous devez utiliser drupal_get_path('module', 'my_module')
.
Remarque : MY_THEME
Et MY_MODULE
Doivent être minuscules si le nom de votre module ou thème est en minuscule. (Par exemple, MY_THEME
Serait remplacé par zen
si zen)
Vous pouvez ajouter le js à l'intérieur d'un module:
Créez le module et placez-le dans le mymodule.module
drupal_add_js(drupal_get_path('module', 'mymodule') . '/mymodule.js');
ou dans le thème:
dans le fichier .info
name = My theme
description = Theme developed by me.
core = 7.x
engine = phptemplate
scripts[] = mytheme.js
ou dans une fonction preprocess_page
function mytheme_preprocess_page(&$vars, $hook) {
if (true) {
drupal_add_js(drupal_get_path('theme', 'mytheme') . '/mytheme.js');
$vars['scripts'] = drupal_get_js(); // necessary in D7?
}
}
Utilisez la fonction dans template.php
Ajouter un fichier JS en bloc:
function MYTHEME_preprocess_block(&$variables) {
drupal_add_js(drupal_get_path('theme', 'MYTHEME') .'/mytheme.js', 'file');
}
Ajouter un fichier JS dans la page ou le nœud:
function MYTHEME_preprocess_page(&$variables) {
drupal_add_js(drupal_get_path('theme', 'MYTHEME') .'/mytheme.js', 'file');
}
Une meilleure approche serait d'obtenir le chemin depuis Drupal, et vous devez mettre le code dans la fonction de formulaire;
function mymodule_form($form, &$form_state) {
... some of your forms goes here
$form['#attached']['js'][] = drupal_get_path('module', 'mymodule') . '/myscript.js';
return $form;
Ajoutez également votre javascript entre le code ci-dessous
(function($) {
function mymodule_function(context) {
// from here
// paste your code in here
// till here
}
Drupal.behaviors.custommodule = {
attach: function(context) {
mymodule_function(context);
}
}
})(jQuery);