Làm cách nào tôi có thể sử dụng jQuery 1.7 mà không gặp sự cố trong các trang quản trị?


11

Có ai chạy jQuery 1.7 thành công không? Tôi đang sử dụng một thành phần jQuery trên các trang của mình yêu cầu jQuery 1.7 trở lên. Phiên bản này gây ra một số tác dụng phụ không mong muốn trong giao diện người dùng quản trị viên, chẳng hạn như các hộp kiểm được chọn không tiết lộ các điều khiển bổ sung khi khả dụng hoặc tiện ích trường không hoạt động.

Tôi đã tự hỏi liệu có một giải pháp nào có thể cho phép tôi dễ dàng làm việc với jQuery 1.7 không.

Tôi đã thấy câu trả lời này trước khi hỏi. Theo tôi hiểu, có 2 vấn đề riêng biệt: cập nhật src của jQuery lên 1.7.x và cập nhật javascript được sử dụng bởi quản trị viên. Tôi đã thử sử dụng ảnh chụp nhanh phát triển jquery_update mới nhất và áp dụng một bản vá , nhưng nó không giải quyết được các vấn đề nêu trên với UI.


Chính sách khá nhiều cho rằng việc nâng cấp các phiên bản Drupal không nên phá vỡ bất cứ thứ gì dựa trên jQuery, vì vậy phiên bản vẫn nhất quán.
mpdon Arena

Về mặt kỹ thuật, vấn đề này là một bản sao của drupal.stackexchange.com/a/41394/809 Ngoài ra tôi hơi thiên vị nhưng câu hỏi khác có câu trả lời tốt hơn.
ericduran

Câu trả lời:


11

Tôi sẽ xem lời khuyên của Clive về cách làm thủ công ở đây:

Làm cách nào để cập nhật jQuery lên phiên bản mới nhất mà tôi có thể tải xuống?

và thêm một số thông tin vào kịch bản để không làm điều đó trên các trang quản trị, ví dụ:

if (arg(0)=='admin') {
  return;
}

Bạn cũng sẽ phải làm điều đó trên node/#/addnode/#/editcác trang, v.v. để không phá vỡ bất cứ thứ gì "cốt lõi" ở đó, hoặc, nếu bạn muốn, hãy đi sâu vào lõi drupal và mang mọi thứ khác lên tới 1.7.

Tùy thuộc vào phiên bản Drupal bạn đang chạy, phiên bản này cũng có thể hoạt động:

function YOURTHEME_preprocess_page(&$vars) {
  if (YOUR CONDITION HERE) {
    $scripts = drupal_add_js('PATH TO YOUR JQUERY FILE');
    unset($scripts['core']['PATH TO DRUPAL JQUERY FILE']);
    $variables['scripts'] = drupal_get_js('header', $scripts);
  }
}

nơi bạn có thể đặt "ĐIỀU KIỆN CỦA BẠN TẠI ĐÂY" thành bất kỳ trang nào bạn muốn jquery mới trên, arg(0)!='admin'v.v.


Cảm ơn Jimajamma, tôi đã không sử dụng mã của bạn, nhưng câu trả lời của bạn đã đưa tôi đi đúng hướng. Tôi đã tìm thấy một bản vá đẹp bổ sung UI vào màn hình cấu hình jquery_update, cho phép bạn sử dụng các phiên bản jQuery khác nhau cho quản trị viên. drupal.org/node/1524944 . Làm việc tốt cho đến nay.
Artur

2
Hãy nhớ rằng ctools cũng đã có một lịch sử phá vỡ, với các bản cập nhật jquery. Bạn có thể cần phải điều chỉnh các bản vá để giải thích cho việc này.
mpdon Arena

Cảm ơn đã chỉ ra điều này. Bạn có biết cái gì sẽ là cách tốt nhất để kiểm tra chống lại điều đó không?
Artur

3
+1 Một cách đơn giản để lấy danh sách tất cả các trang quản trị không có 'quản trị viên' trong url là:$pages = module_invoke_all('admin_paths');
Clive

1
@Clive, cái này có bắt được các URL AJAX không? Giống như khi bạn sử dụng tiện ích ctools trên trang "bình thường"?
mpdon Arena

2

jQuery Update hiện có khả năng kích hoạt các phiên bản jQuery khác nhau cho mặt trước và mặt sau. Tải xuống phiên bản dev mới nhất và bạn sẽ thấy tốt: 1.5 trong phần phụ trợ, do đó, nó hoạt động với UI UI và 1.7 hoặc 1.8 ở lối vào, để tăng thêm tính tốt cho jQuery.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.