วิธีการสร้างเบ็ดหรือไม่?


18

ฉันจะสร้างเบ็ดของตัวเอง (คล้ายกับที่แกน Drupal สร้างขึ้น) เพื่อให้โมดูล Drupal อื่น ๆ ใช้ประโยชน์ได้อย่างไร

คำตอบ:


20

คุณไม่ได้สร้าง hooks ขึ้นมาจริงๆ คุณสามารถใช้ฟังก์ชั่นผู้ช่วยเช่นmodule_invoke_all(), module_invoke()หรือdrupal_alter()การเรียกฟังก์ชั่นทั้งหมดที่ตรงกับรูปแบบชื่อคาดว่า module_implements()ฟังก์ชั่นเรียกมักจะพบกับ

ถึงแม้ว่ามันจะไม่จำเป็นสำหรับตะขอไปทำงานปฏิบัติที่ดีที่สุดคือการจัดทำเอกสารพวกเขาในMODULE.api.phpโดยการสร้างที่ว่างเปล่าไม่สมบูรณ์ hook_NAMEฟังก์ชั่นที่มีความเห็นเอกสาร


6
+1 เกี่ยวกับเอกสารนั่นคือมาตรฐานการเข้ารหัสใหม่จาก Drupal 7 และโมดูล contrib จำนวนมากเริ่มใช้มันสำหรับ D6 ด้วย โปรดทราบว่าแทนที่จะเป็นฟังก์ชั่นที่ว่างเปล่าจะดียิ่งขึ้นเมื่อคุณจัดเตรียมการใช้งานตัวอย่างเพื่อแสดงสิ่งที่สามารถทำได้ด้วยตะขอนั้น
Berdir

1
โดยปกติแล้วคุณจะต้องให้รหัสสำหรับ hook ที่แสดงรายการอยู่ใน MODULE.api.php หากมีการนำไปใช้จริงของ hook นั้น
kiamlaluno

0

คุณยังสามารถสร้างเบ็ดโดยใช้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โมดูลเพื่อดูเบ็ดใหม่นี้ภายใต้แท็บโหนด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.