ฉันจะสร้างเบ็ดของตัวเอง (คล้ายกับที่แกน Drupal สร้างขึ้น) เพื่อให้โมดูล Drupal อื่น ๆ ใช้ประโยชน์ได้อย่างไร
ฉันจะสร้างเบ็ดของตัวเอง (คล้ายกับที่แกน Drupal สร้างขึ้น) เพื่อให้โมดูล Drupal อื่น ๆ ใช้ประโยชน์ได้อย่างไร
คำตอบ:
คุณไม่ได้สร้าง hooks ขึ้นมาจริงๆ คุณสามารถใช้ฟังก์ชั่นผู้ช่วยเช่นmodule_invoke_all()
, module_invoke()
หรือdrupal_alter()
การเรียกฟังก์ชั่นทั้งหมดที่ตรงกับรูปแบบชื่อคาดว่า module_implements()
ฟังก์ชั่นเรียกมักจะพบกับ
ถึงแม้ว่ามันจะไม่จำเป็นสำหรับตะขอไปทำงานปฏิบัติที่ดีที่สุดคือการจัดทำเอกสารพวกเขาในMODULE.api.php
โดยการสร้างที่ว่างเปล่าไม่สมบูรณ์ hook_NAME
ฟังก์ชั่นที่มีความเห็นเอกสาร
คุณยังสามารถสร้างเบ็ดโดยใช้hook_trigger_infoคุณสามารถสร้างเบ็ดใหม่และในโมดูลของคุณคุณต้องใช้มัน ตัวอย่างเช่นสมมติว่าคุณต้องการสร้างการเก็บถาวรของโหนดและใส่โหนดเก่าไว้ในนั้น คุณต้องการทริกเกอร์ hook เมื่อการดำเนินการเก็บถาวรเสร็จสิ้น มันจะเป็นอย่างนี้
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
หลังจากกำหนดเบ็ดโมดูลของคุณจะเป็นผู้รับผิดชอบในการดำเนินการเบ็ดและการกระทำโดยใช้module_invoke ()หรือmodule_invoke_all ()
คุณสามารถเปิดใช้งานtrigger
โมดูลเพื่อดูเบ็ดใหม่นี้ภายใต้แท็บโหนด