Tên máy của Lượt xem đang được băm trên mạng (?)


20

Một người mới chơi Drupal, vì vậy hãy sửa cho tôi nếu hiểu sai của tôi, nhưng thông thường, khi một Khối được tạo bởi Lượt xem, tên máy của khối được gắn vào tên máy của Lượt xem.

tức là "article_listing_view-block_1"

Khi sử dụng hàm block_load ($ module, $ block_id), cách tôi đã thực hiện là gọi nó như vậy: $ block = block_load ("lượt xem", "article_listing_view-block_1");

Tuy nhiên, vì một số lý do rất kỳ lạ, một Khối cụ thể có tên máy:

"flag_comments_as_offensive-block_1"

có ID máy băm là:

"92a591f5a81d13a3dd5492f073f9e135"

Tôi nói "băm" vì ID máy thay đổi dựa trên tên máy của khối. Nếu tôi thay đổi nó từ khối_1 thành khối, nó sẽ thay đổi và khi tôi hoàn nguyên từ khối này sang khối_1, nó sẽ hoàn nguyên ID máy trở lại ở trên. Vì vậy, có một mối tương quan trực tiếp giữa tên máy và ID "băm" mà nó tạo ra.

Thay vì gọi block_load ("lượt xem", "tên máy"), tôi phải sử dụng ID máy băm, đây không phải là vấn đề nhưng tôi đã mất nhiều thời gian để tìm ra. Cách tôi tìm ra là đi vào Cấu trúc -> Khối và di chuột qua liên kết "Định cấu hình" và xem URL. Tôi nhận thấy rằng tất cả các Khối khác của tôi đều có một URL bao gồm ID máy của nó, nhưng đối với khối cụ thể này, đó là ID máy được băm. Khi tôi đặt ID máy vào block_load, viola, nó hoạt động như một bùa mê!

Vì vậy, tôi đoán câu hỏi sôi nổi: Chuyện gì đang xảy ra, và tại sao Drupal lại băm tên máy của tôi? Đây là một lỗi, hoặc một lỗi về phía tôi?

Câu trả lời:


23

Điều này là do mô-đun khối mong đợi một 'delta' (id khối) dài tối đa 32 ký tự. Nhưng màn hình khối xem có thể có tối đa 65 ký tự: tối đa 32 ký tự từ tên xem và 32 ký tự từ tên hiển thị và dấu gạch nối '-' giữa chúng.

Khi delta vượt quá giới hạn 32 ký tự, Lượt xem sẽ băm nó qua md5 - đó không phải là một chuỗi ngẫu nhiên. Bạn có thể sử dụng nó một cách an toàn cho các bộ chọn CSS và jQuery.


hầu hết câu trả lời của tôi đến từ drupal.org/node/346602
Capi Etheriel

Cảm ơn! Tôi biết đó không phải là ngẫu nhiên, nhưng tôi cũng không chắc chắn điều gì đang xảy ra. Điều này giải thích nó :).
Peter

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.