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)?
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)?
Yanıtlar:
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.
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';
}
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.