Bagaimana cara membuat kait?


18

Bagaimana saya bisa membuat kait saya sendiri (mirip dengan yang dibuat inti Drupal) untuk memanfaatkan modul Drupal lainnya?

Jawaban:


20

Anda sebenarnya tidak membuat kait. Anda menggunakan fungsi pembantu seperti module_invoke_all(), module_invoke()atau drupal_alter()untuk memanggil semua fungsi yang cocok dengan pola nama yang diharapkan. Fungsi yang dipanggil biasanya ditemukan bersama module_implements().

Sekalipun kait tidak perlu berfungsi, praktik terbaik adalah mendokumentasikannya MODULE.api.phpdengan membuat fungsi bertopik kosong hook_NAMEdengan komentar dokumentasi .


6
+1 tentang dokumentasi, itu adalah standar pengkodean baru dari Drupal 7 dan banyak modul contrib mulai menggunakannya untuk D6 juga. Perhatikan bahwa alih-alih fungsi kosong, lebih baik ketika Anda memberikan contoh implementasi untuk menunjukkan apa yang dapat dilakukan dengan hook itu.
Berdir

1
Biasanya, Anda memberikan kode untuk kait yang tercantum dalam MODULE.api.php jika ada implementasi sebenarnya dari kait itu.
kiamlaluno

0

Anda juga dapat membuat hook, menggunakan hook_trigger_info Anda dapat membuat hook baru, dan dalam modul Anda, Anda perlu mengimplementasikannya. Sebagai contoh, misalkan Anda ingin membuat arsip node dan meletakkan node lama di dalamnya. Anda juga ingin memicu kail ketika operasi arsip selesai. itu akan menjadi sesuatu seperti ini

function hook_trigger_info() {
    return array(
            'node' => array(
                    'archive_nodes' => array(
                        'label' => t('Archive old nodes'),
                    )
            )
    );
} 

Setelah mendefinisikan hook, modul Anda bertanggung jawab untuk mengimplementasikan hook dan tindakan menggunakan module_invoke () atau module_invoke_all () .

Anda dapat mengaktifkan triggermodul untuk melihat kait baru ini di bawah tab node.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.