Я використовую 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 в інших місцях на сайті (наприклад, спадання віджетів на сторінці Manage Fields більше не працюватиме). Якщо ви готові виправити це та будь-які інші невеликі роздратування, це, мабуть, найкраща ставка. Слід також зауважити, що використання 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']);
}
Щойно ви зробите це, відкрийте Інструменти для розробників / Firebug, і ви побачите всі зміни, які вам потрібно буде внести, щоб заставити решту сайту JS працювати :)
ОНОВЛЕННЯ
Остання версія оновлення jQuery ( 7.x-2.3 під час написання) тепер дозволить оновити jQuery до v1.8. Дуже круто.
Модуль jQuery Multi - це ще один варіант, завдяки Горону за те, що він вказав це у коментарях. Як він також зазначає, цей модуль має стабільний випуск і не порушує жодного існуючого JavaScript.
Натхненні документацією крюка_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 (який ОП, здається, не проти), але це означає, що вам не доведеться турбуватися про те, чи збираєтесь ви зіпсувати всю вашу установку drupal.