มือใหม่ของ Drupal แก้ไขให้ถูกต้องถ้าฉันเข้าใจว่าผิด แต่โดยปกติเมื่อบล็อกถูกสร้างโดย Views ชื่อเครื่องของบล็อกจะต่อท้ายชื่อเครื่องของ Views
เช่น "article_listing_view-block_1"
เมื่อใช้ฟังก์ชั่น block_load ($ module, $ block_id) วิธีที่ฉันทำคือเรียกมันว่า: $ block = block_load ("views", "article_listing_view-block_1");
อย่างไรก็ตามด้วยเหตุผลบางอย่างที่แปลกประหลาดบล็อกหนึ่งที่มีชื่อเครื่อง:
"flag_comments_as_offensive-block_1"
มีหมายเลขเครื่องที่แฮชของ:
"92a591f5a81d13a3dd5492f073f9e135"
ฉันพูดว่า "แฮช" เพราะหมายเลขเครื่องจะเปลี่ยนไปตามชื่อเครื่องของบล็อคโดยตรง หากฉันเปลี่ยนจาก block_1 เป็นบล็อกมันจะเปลี่ยนและเมื่อฉันเปลี่ยนกลับจากบล็อกเป็น block_1 ก็จะเปลี่ยนหมายเลขเครื่องกลับสู่ด้านบน ดังนั้นจึงมีความสัมพันธ์โดยตรงระหว่างชื่อเครื่องและ ID "แฮช" ที่สร้างขึ้น
แทนที่จะเรียก block_load ("มุมมอง", "ชื่อเครื่อง") ฉันต้องใช้หมายเลขเครื่องที่แฮชซึ่งไม่ใช่ปัญหา แต่ใช้เวลานานกว่าจะคิดออก วิธีที่ฉันคิดออกคือไปที่โครงสร้าง -> บล็อกและโฮเวอร์เหนือลิงก์ "กำหนดค่า" และดู URL ฉันสังเกตเห็นว่าบล็อกอื่น ๆทั้งหมดของฉันมี URL ที่มีหมายเลขเครื่อง แต่สำหรับบล็อกนี้โดยเฉพาะนั่นคือหมายเลขเครื่องที่แฮช เมื่อฉันใส่หมายเลขเครื่องใน block_load, วิโอลามันทำงานได้อย่างมีเสน่ห์!
ดังนั้นฉันจึงเดาว่าคำถามจะเดือดร้อนไปที่: เกิดอะไรขึ้นและทำไม Drupal จึงทำให้ชื่อเครื่องของฉันยุ่งเหยิง? นี่เป็นข้อบกพร่องหรือมีข้อผิดพลาดในส่วนของฉันหรือไม่?