Drupal 7 üzerinde jquery nasıl edinilir - Yeni başlayanlar için


8

Ben drupal 7 üzerinde jquery çalışma hakkında birçok öğretici çevrimiçi okuyordum. Kod ve örnekler birçok satır olmasına rağmen, bulamıyorum ne kod parçası nereye koymak olabilir (belki çoğu geliştiriciler için açıktır)

Yani, yaptığım şey

1) Yeni bir özel blok oluşturuyorum

2) Orada drupal UI'den kodumu yazıyorum

(function ($) {

  $(document).ready(function(){

    // jquery here

  });
})(jQuery);

3) Bloğu görüntülüyorum, ancak jquery yüklü değil.

Bu kodu şablon dosyalarına, tema dosyalarına, css dosyalarına, bilgi dosyalarına koymam gerektiğini okuyorum ve whatelse bilmiyorum!

Tam olarak hangi dosyada ve hangi yolda düzgün çalışması için yukarıdaki kodu koymak zorunda değilim?

Herhangi bir tavsiye?

Çok teşekkürler!

Yanıtlar:


11

Burada birkaç şey var:

  1. Javascript ve PHP'yi UI aracılığıyla siteye girmekten kaçınabiliyorsanız, muhtemelen sizi sıkıntıdan kurtaracaktır. Alternatifiniz yoksa sorun değil ama neden harika bir fikir olmadığının bazı nedenleri: https://drupal.stackexchange.com/a/2512/10729 (bunun PHP'ye yönelik olduğunu unutmayın, js değil, çoğu puanlar hala js içindir). Örnekler modülü, özel blokları oluşturmaya ilişkin bir örnek vardır.
  2. Js eklemek için, tüm sayfalarda isterseniz temanızın bilgi dosyasına ekleyebilirsiniz. Sadece bazı yerlerde istiyorsanız, drupal_add_js () kullanmak en iyisidir, bu yüzden sadece olması gereken sayfalardadır. Formlara js davranışı eklemek için form öğelerinizde #attached özniteliğini de kullanabilirsiniz .
  3. $ (Document) .ready () kullanırsanız, sayfa yüklendiğinde javascript'inizi tetikler, ancak sayfa ajax aracılığıyla güncellenirse javascriptiniz tekrar tetiklenmez, bu nedenle yeni işaretleme javascript'inizden etkilenmez dır-dir. Bu durumları ele almak için belge hazır yerine drupal davranışları kullanmalısınız.

Örneğin:

(function ($) {
  Drupal.behaviors.yourBehaviorName = {
    attach: function (context, settings) {
      // Do your thing here.
    }
  };
})(jQuery);

Bu sayfaları okumanızı tavsiye ederim:
Drupal 7'de JavaScript'i yönetme
JavaScript ve jQuery ile çalışma


7

Senin içinde js bu kodu gibi insert;

(function ($) {  

  Drupal.behaviors.themename = {

    attach: function (context, settings) {            

     // All our js code here
     alert('Hello jQuery');
     // end our js code

   }

 };})(jQuery);

Tema şablonunuzda .pp sonra hook_preprocess_html oluşturun ve ardından drupal_add_js kullanın

function themename_preprocess_html(&$variables) {
  drupal_add_js(drupal_get_path('theme', 'themename') . '/js/your.js', array( 
    'scope' => 'footer', 
    'weight' => '15' 
  ));
}

Sadece tema adını değiştirin


1
Bunun, javascript'i istenebilecek veya istenmeyecek her sayfaya ekleyeceğini unutmayın.
rooby

1
Hehe evet bu, javascript'i her sayfaya ekleyecektir. Sadece @apdr denemek ve onun bilgisi ile test edelim
Sibiru

2
js teması aracılığıyla her sayfada yüklü olmasını istiyorsanız, yalnızca temanın .info dosyasındaki dosyayı listelemek daha mantıklı olmaz mıydı?
Jimajamma

3

.js dosyanız aşağıdaki gibi görünmelidir:

(function ($) {
    Drupal.behaviors.cdgi = {
        attach: function(context) {

        //your code

        }
    }
}(jQuery));

bu dosyayı Drupal'a eklemek için modülünüzde drupal_add_js () kullanın . burada ve burada iyi referanslar .

önbelleği sık sık temizle;)

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.