JQuery'yi indirebileceğim en son sürüme nasıl güncellerim?


33

Varsayılan olarak jQuery 1.4 kullanan Drupal 7 kullanıyorum? Bunu en son sürüme nasıl güncelleyebilirim (şu anda 1.7)?


1
Modül kullanmak istemiyorum, manuel olmak istiyorum.
Karmacoma

Drupal’da jQuery’i manuel olarak yükseltmek, en deneyimli Drupal geliştiricileri için bile çok karmaşık ve riskli olacaktır. Clive'nin tavsiyesine uymalı ve jQuery Update'i kullanmalısın.
sheena_d

Misc-jquery.js dosyasına ftp ile gidip yeni jquery kodunu değiştiriyorum. Sağ?
Karmacoma

misc-jquery.js bildiğim kadarıyla bir jquery sürümünün tam kopyası değildir. Bununla birlikte, git drupalcode.org/project/jquery_update.git/tree/refs/heads/… 'e göre 1.7 de destek olabilir.
AyeshK

@Patrick Kenny Doğru olduğunu sanmıyorum - bugünden itibaren jquery_update kullanarak jquery 1.8'i seçebilirim
doub1ejack

Yanıtlar:


44

Tek yönlü yüklemektir dev versiyonunu ait jQuery Güncellemesi (en ayarlar sayfasını ziyaret ederek, sana jQuery 1.7 kullanma seçeneğini verir http://mysite.com/admin/config/development/jquery_update ).

Bununla birlikte, şu anda sitenin başka bir yerinde JavaScript'i kırdığı bilinmektedir (örneğin, Alanları Yönet sayfasındaki widget açılır menüsünün artık çalışmaz). Bunu ve diğer küçük sıkıntıları gidermeye hazırsanız, bu muhtemelen en iyi seçeneğinizdir. Ayrıca, bir modülün dev sürümünü kullanmanın risksiz olmadığını da unutmayın, çünkü hata bulma olasılığı belirli bir sürüm kullanmaktan çok daha yüksektir.

Manuel olarak yapmak istiyorsanız, sitenizi beklendiği gibi çalışmasını sağlamak için yeniden yazmak için çok sayıda çekirdek javascript koduna sahip olacaksınız; jQuery 1.4 / 1.5 ve 1.7 sürümleri arasında çok şey değiştirdi, bu yüzden çekirdek Drupal javascript kodunun birçoğu bununla çalışmayacak.

Sadece bir jQuery 1.7 sürümünü bırakmak istiyorsanız, muhtemelen uygulayabilirsiniz hook_js_alter(), çekirdek jQuery dosyasını çözün ve yerine kendi dilinizi ekleyin:

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']);
}

Bunu yaptıktan sonra, Geliştirici Araçları / Firebug'u açın; JS sitesinin geri kalanının çalışması için yapmanız gereken tüm değişiklikleri göreceksiniz :)

GÜNCELLEŞTİRME

JQuery güncellemesinin en son sürümü ( yazma sırasında 7.x-2.3 ) şimdi jQuery'yi v1.8'e güncellemenize izin verecektir. Çok havalı.

JQuery Çoklu modül başka bir seçenek, yorumlarda Buna dikkat çektiğin için Goron sayesindedir. Ayrıca, belirttiği gibi, bu modül kararlı bir sürümde ve mevcut herhangi bir javascript'i kırmayacak.


Thaks adam !!! Bir süredir bunu arıyorum! Sadece MYTHEME_js_alter ve drupal_get_path için MYMODULE_js_alter yerini böylece Benim durumumda ben sadece, tema başına jQuery farklı bir sürümünü yüklemek istedim ( 'temasıyla', 'Mytheme') drupal_get_path ( 'modülü', 'MyModule') için
victmo

1
Dikkat edin, Drupal eski bir jQuery ile çalışmak üzere yazılmış ve jQuery 1.7 veya 1.8 ile uyumlu olmayan kendi JavaScript dosyaları ile birlikte gelir. En son jQuery Update bunlar için yedek dosyalar sağlar.
Pierre Buyle

1
Modülün dev sürümüne ihtiyacınız var, kararlı sürümde, 1.7:
Clive

2
jQuery Multi, dev sürümünü gerektirmeyen ve herhangi bir JS'yi kırmayacak başka bir seçenektir. Belki bir seçenek olarak ekleyin veya "Tek yolu"?
goron

1
@ goron İyi nokta, teşekkürler. Bu cevabın bir kısmı muhtemelen şimdi kullanılmayacak. Yakında güncellemeye çalışacağım
Clive

4

Birden fazla jquery sürümü kullanmanıza izin veren jquery multi modülünü kullanmayı da düşünmelisiniz. Harika bir modül, tüm projelerimde Druapl 7 ve 6 için kullanıyorum.


2

Hook_js_alter dokümantasyonundan esinlenerek aşağıdakiler çalışır. Bunu temanın template.php dosyasına yerleştirebilirsiniz. Bu, Drupal çekirdeği ile çakışmayı önlemek için farklı bir yönetici teması kullanmanızı gerektirir ve jquery-1.8.3.min.js dosyasının tema içinde 'js' adlı bir klasörde bulunduğunu varsayar (buna göre ayarlama yapın).

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';

}


Farklı yönetici tema Gerektiren temalar listesini sağlayabilir sürece, gerçekten bir çözüm değildir olacak bu yöntemle çalışır. Benim tahminim, çok, çok az olurdu. Ayrıca, bu temalar jQuery'yi de kullanması çok muhtemel olacak, ki bu kesinlikle jQuery güncelleme modülünün düzeltmek için özel olarak tasarlandığı sorunlara yol açacaktır
Clive

0

Amacınızın burada ne olduğundan emin değilim, ancak özel modül geliştirme için belirli bir sürüme ihtiyaç duyduğumda, bunu jQuery.noConflict kullanarak yapabildim .

Bu, jquery_update modülüne kıyasla (OP'nin sakıncası gibi görünmediği) bir miktar ekstra çalışmadır, ancak tüm drupal kurulumunuzu karıştırıp karıştırmayacağınız konusunda endişelenmenize gerek olmadığı anlamına gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.