J'utilise Drupal 7, qui utilise jQuery 1.4 par défaut? Comment puis-je le mettre à jour avec la dernière version (actuellement la 1.7)?
J'utilise Drupal 7, qui utilise jQuery 1.4 par défaut? Comment puis-je le mettre à jour avec la dernière version (actuellement la 1.7)?
Réponses:
Une solution consiste à installer la version de développement de jQuery Update , ce qui vous permet d'utiliser jQuery 1.7 (en visitant la page des paramètres à l' adresse http://mysite.com/admin/config/development/jquery_update ).
Attention, actuellement, il est connu que JavaScript est dissocié ailleurs sur le site (par exemple, le menu déroulant des widgets sur une page Gérer les champs ne fonctionnera plus). Si vous êtes prêt à remédier à cela, et à d’autres petits ennuis, c’est probablement votre meilleur choix. Vous devriez également noter que l’utilisation de la version dev d’un module n’est pas sans risque, car les chances qu’elle contienne des bogues sont bien plus grandes que l’utilisation d’une version spécifique.
Si vous voulez le faire manuellement, vous aurez beaucoup de code javascript à réécrire pour que votre site fonctionne comme prévu. jQuery a énormément changé entre les versions 1.4 / 1.5 et 1.7, de sorte qu'une grande partie du code javascript de Drupal ne fonctionne tout simplement pas.
Si vous souhaitez simplement déposer une version de jQuery 1.7, vous pouvez probablement implémenter hook_js_alter()
, désélectionner le fichier jQuery principal et ajouter le vôtre à sa place:
function MYMODULE_js_alter(&$js) {
$path = drupal_get_path('module', 'MYMODULE') . '/path/to/jquery.1.7.js';
// Copy the current jQuery file settings and change
$js[$path] = $js['misc/jquery.js'];
// Update necessary settings
$js[$path]['version'] = 1.7;
$js[$path]['data'] = $path;
// Finally remove the original jQuery
unset($js['misc/jquery.js']);
}
Une fois que vous avez fait cela, ouvrez Outils de développement / Firebug et vous verrez toutes les modifications à apporter pour que le reste du site JS fonctionne :)
MISE À JOUR
La dernière version de la mise à jour de jQuery ( 7.x-2.3 au moment de la rédaction) vous permettra désormais de mettre à jour jQuery vers la version 1.8. Très sympa.
Le module jQuery Multi est une autre option, merci à goron de l'avoir signalé dans les commentaires. Comme il le note également, ce module a une version stable et ne cassera aucun code javascript existant.
Inspiré par la documentation de hook_js_alter , les travaux suivants fonctionnent. Vous pouvez le placer dans le template.php de votre thème. Cela nécessite que vous utilisiez un thème d'administration différent pour éviter tout conflit avec le noyau Drupal, et supposons que jquery-1.8.3.min.js se trouve dans un dossier appelé "js" dans le thème (à adapter en conséquence).
function [theme_machine_name]_js_alter(&$javascript) {
$javascript['misc/jquery.js']['data'] = drupal_get_path('theme', '[theme_machine_name]') .
'/js/jquery-1.8.3.min.js';
$javascript['misc/jquery.js']['version'] = '1.8.3';
}
Je ne suis pas sûr de votre objectif, mais lorsque j’ai eu besoin d’une version spécifique pour le développement de modules personnalisés, j’ai pu le faire en utilisant jQuery.noConflict .
C'est un travail supplémentaire comparé au module jquery_update (qui ne semble pas déranger le PO), mais cela signifie que vous n'avez pas à vous soucier de savoir si vous allez gâcher toute votre installation Drupal.