Я использую Drupal 7, который по умолчанию использует jQuery 1.4? Как я могу обновить его до последней версии (в настоящее время 1.7)?
Я использую Drupal 7, который по умолчанию использует jQuery 1.4? Как я могу обновить его до последней версии (в настоящее время 1.7)?
Ответы:
Один из способов установить версию Dev из JQuery Update , который дает вам возможность использовать JQuery 1,7 (посетив страницу настроек на http://mysite.com/admin/config/development/jquery_update ).
Осторожно, однако, в настоящее время известно, что он нарушает JavaScript в других местах сайта (например, раскрывающийся список виджетов на странице «Управление полями» больше не будет работать). Если вы готовы исправить это и любые другие мелкие неприятности, это, вероятно, ваш лучший выбор. Следует также отметить, что использование версии dev модуля не без рисков, так как шансы на наличие ошибок намного выше, чем при использовании определенного выпуска.
Если вы хотите сделать это вручную, тогда вам придется переписать основной код javascript, чтобы ваш сайт работал должным образом; jQuery очень сильно изменился между версиями 1.4 / 1.5 и 1.7, поэтому большая часть основного кода Javascript Drupal просто не будет работать с ним.
Если вы хотите просто добавить версию jQuery 1.7, вы можете реализовать ее hook_js_alter()
, сбросить основной файл jQuery и добавить свой собственный файл вместо него:
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']);
}
Как только вы это сделаете, откройте Developer Tools / Firebug, и вы увидите все изменения, которые вам нужно сделать, чтобы заставить остальную часть сайта работать JS :)
ОБНОВИТЬ
Последняя версия обновления jQuery ( 7.x-2.3 на момент написания) теперь позволяет обновлять jQuery до v1.8. Очень круто.
Модуль jQuery Multi - это еще один вариант, благодаря Горону, который указал на это в комментариях. Как он также отмечает, этот модуль имеет стабильную версию и не сломает какой-либо существующий JavaScript.
Вдохновленный документацией hook_js_alter , работает следующее. Вы можете поместить его в template.php вашей темы. Это требует, чтобы вы использовали другую тему администратора, чтобы избежать конфликта с ядром Drupal, и предполагает, что jquery-1.8.3.min.js находится в папке с именем 'js' внутри темы (отрегулируйте в соответствии с требованиями).
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';
}
Я не уверен, что ваша цель здесь, но когда мне нужна была конкретная версия для разработки пользовательских модулей, я смог сделать это с помощью jQuery.noConflict .
Это некоторая дополнительная работа по сравнению с модулем jquery_update (который OP, похоже, не возражает), но это означает, что вам не нужно беспокоиться о том, собираетесь ли вы испортить всю установку drupal.