Tôi đang sử dụng Drupal 7, sử dụng jQuery 1.4 làm mặc định? Làm cách nào để cập nhật lên phiên bản mới nhất (hiện 1.7)?
Tôi đang sử dụng Drupal 7, sử dụng jQuery 1.4 làm mặc định? Làm cách nào để cập nhật lên phiên bản mới nhất (hiện 1.7)?
Câu trả lời:
Một cách là cài đặt phiên bản dev của jQuery Update , cung cấp cho bạn tùy chọn sử dụng jQuery 1.7 (bằng cách truy cập trang cài đặt tại http://mysite.com/admin/config/development/jquery_update ).
Mặc dù vậy, hãy cẩn thận, hiện tại đã biết phá vỡ JavaScript ở nơi khác trong trang web (ví dụ: trình đơn thả xuống tiện ích trên trang Quản lý trường sẽ không còn hoạt động nữa). Nếu bạn đã sẵn sàng để khắc phục điều đó và bất kỳ phiền toái nhỏ nào khác, đây có lẽ là lựa chọn tốt nhất của bạn. Bạn cũng nên lưu ý rằng việc sử dụng phiên bản dev của mô-đun không có rủi ro, vì khả năng nó có lỗi cao hơn rất nhiều so với sử dụng một bản phát hành cụ thể.
Nếu bạn muốn làm thủ công thì bạn sẽ có rất nhiều mã javascript cốt lõi để viết lại để làm cho trang web của bạn hoạt động như mong đợi; jQuery đã thay đổi rất nhiều giữa phiên bản 1.4 / 1.5 và 1.7, do đó, rất nhiều mã javascript Drupal cốt lõi sẽ không hoạt động với nó.
Nếu bạn muốn thả phiên bản jQuery 1.7 thì có lẽ bạn có thể thực hiện hook_js_alter()
, bỏ đặt tệp jQuery lõi và thêm tệp của riêng bạn vào vị trí của nó:
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']);
}
Khi bạn đã hoàn thành việc đó, hãy mở Công cụ dành cho nhà phát triển / Fireorms và bạn sẽ thấy tất cả các thay đổi bạn sẽ cần thực hiện để làm cho phần còn lại của trang web hoạt động :)
CẬP NHẬT
Phiên bản mới nhất của bản cập nhật jQuery ( 7.x-2.3 tại thời điểm viết) giờ đây sẽ cho phép bạn cập nhật jQuery lên v1.8. Rất tuyệt.
Các jQuery nhiều mô-đun là một tùy chọn, nhờ Goron đã chỉ ra rằng trong các ý kiến. Như ông cũng lưu ý, mô-đun này có một bản phát hành ổn định và sẽ không phá vỡ bất kỳ javascript nào hiện có.
Lấy cảm hứng từ tài liệu hook_js_alter , các công việc sau đây. Bạn có thể đặt nó trong template.php của chủ đề. Điều này yêu cầu bạn sử dụng một chủ đề quản trị khác để tránh xung đột với lõi Drupal và giả định rằng jquery-1.8.3.min.js nằm trong một thư mục có tên 'js' trong chủ đề (điều chỉnh cho phù hợp).
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';
}
Tôi không chắc mục đích của bạn là gì ở đây, nhưng khi tôi cần một phiên bản cụ thể để phát triển mô-đun tùy chỉnh, tôi đã có thể làm như vậy bằng cách sử dụng jQuery.noConflict .
Đó là một số công việc bổ sung so với mô-đun jquery_update (mà OP dường như không bận tâm), nhưng điều đó có nghĩa là bạn không phải lo lắng về việc liệu bạn có làm hỏng toàn bộ cài đặt drupal của mình không.