Görünümler Bloğun makine adı “karma” (?)


20

Drupal bir acemi, anladığım yanlışsa beni düzeltin, ancak normalde, Görünümler tarafından bir Blok oluşturulduğunda, bloğun makine adı Görünümlerin makine adına eklenir.

yani "article_listing_view-block_1"

Block_load ($ module, $ block_id) işlevini kullanırken, bunu yapmamın yolu bu şekilde çağırmaktır: $ block = block_load ("views", "article_listing_view-block_1");

Ancak, çok garip bir nedenden ötürü, makine adı ile belirli bir Blok:

"Flag_comments_as_offensive-block_1"

hashed makine kimliğine sahiptir:

"92a591f5a81d13a3dd5492f073f9e135"

"Karma" diyorum, çünkü makine kimliği doğrudan bloğun makine adına göre değişiyor. Block_1'den bloke olacak şekilde değiştirirsem, değişir ve bloktan block_1'e geri döndüğümde, makine kimliğini tekrar yukarı döndürür. Dolayısıyla, makine adı ile oluşturduğu "karma" kimlik arasında doğrudan bir ilişki vardır.

Block_load ("views", "machine name") çağırmak yerine, bir sorun olmayan karma makine kimliğini kullanmak zorundayım ama bu benim için çok uzun sürdü . Bunu anlamanın yolu Yapı -> Bloklar'a gidip "Yapılandır" bağlantısının üzerine gelip URL'ye bakmaktı. Diğer tüm Bloklarımın makine kimliğini içeren bir URL'si olduğunu fark ettim , ancak bu blok için karma makine kimliği oldu. Bir kez block_load, viola içine makine kimliği koymak, bir cazibe gibi çalıştı!

Yani sanırım soru şu şekilde kayboluyor: Neler oluyor ve Drupal makine adımı neden karıştırıyor? Bu bir hata mı yoksa benim tarafımda bir hata mı?

Yanıtlar:


23

Bunun nedeni, blok modülünün 32 karakter uzunluğunda bir 'delta' (blok kimliği) beklemesidir. Ancak bir görünüm bloğu görüntüsünde en fazla 65 karakter olabilir: görünüm adından en fazla 32 karakter ve ekran adından 32 karakter ve aralarında bir tire - işareti bulunur.

Delta 32 karakter sınırını aştığında, Görünümler bunu md5 ile hash eder - rastgele bir dize değildir. CSS ve jQuery seçicileri için güvenle kullanabilirsiniz.



Teşekkürler! Rastgele olmadığını biliyordum, ama ne olup bittiğinden tam olarak emin değildim. Bu açıklıyor :).
Peter

4

Görünümler makine adları yalnızca ad 32 karakterden uzunsa karma yapılır.

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.