Drupal'de bir blok'un ajax ile baştan yüklenmesi nasıl yapılır?
Elimde bir son gönderilen yorumlar bloğu var, bu blok her sayfada görünecek. Herhangi bir kullanıcı bir node'a yorum yaptığında da bulunduğu sayfada baştan yüklenip son yorumu da gösterecek.
Views'te bu blok için Ajax'ı enable ettim, Ajax blocks diye bir eklenti yükledim (http://drupal.org/project/ajaxblocks) hiçbir etkisi olmadı.
Sanırım yorum gönderildiğinde bloğun yüklenmesi için tetiklemeyi bizim yapmamız gerekiyor.
İlk defa Ajax deniyorum, herhangi bir eklenti çözümü veya kod çözümü olabilir, şimdiden teşekkür ederim.
sanalfare
Cum, 2010-08-20 22:41
Permalink
block lar cache e
block lar cache e alınmıyorsa(site ayarları->performans) zaten sayfa yenilendiğinde son yorum da görünür. O an sitedeki bütün kullanıcıların o yorumu bulundukları sayfadan görmelerini istiyorsan bu işi views ile yapamazsın. Çünkü views ta sorgu yenilenmez. Sadece diğer sayfalar ajax ile çağrılır. Ki bunun için de bir tuşa basman gerekir(trigger). Bana göre bunu yapmak için yeni bir eklenti yazman gerekir. Eklenti yazma konusunda biraz deneyimin varsa (yeni url ekleme vs.) belirtirsen sana yardımcı olmaya çalışırım.
Ama genel hatlarıyla açıkliyim. Yeni bir url oluşturacaksın. o url de son yorumları veri tabanından çekip listeleyeceksin. url nin callback fonksiyonunun return kısmı JSON olacak. Blocktan jquery get ile o url yi çağıracaksın. o da son yorumları JSON olarak döndürecek. Sonra gelen veriyi ayırıp göstereceksin. Block taki kontrolü 10 saniyede bir yaparsan hemen hemen anındaymış gibi görünür. Benim aklıma gelen bu şekilde.
mezzomorto
Paz, 2010-08-22 21:09
Permalink
tekrar teşekkürler
tekrar teşekkürler sanalfare. programlama bilgim var ama ajax ve drupale modül ekleme deneyimim yok, bu yüzden şu an beklese daha iyi. ama yapmaya karar verirsem bir gün yine kapını çalabilirim :)