Làm thế nào để tạo ra một cái móc?


18

Làm cách nào tôi có thể tạo móc của riêng mình (tương tự như lõi Drupal tạo) cho các mô-đun Drupal khác để sử dụng?

Câu trả lời:


20

Bạn không thực sự tạo ra móc. Bạn sử dụng các hàm trợ giúp như module_invoke_all(), module_invoke()hoặc drupal_alter()để gọi tất cả các hàm khớp với mẫu tên dự kiến. Các hàm được gọi thường được tìm thấy với module_implements().

Ngay cả khi không cần thiết cho các hook hoạt động, cách tốt nhất là ghi lại chúng MODULE.api.phpbằng cách tạo các hàm khai trống hook_NAMEvới các nhận xét tài liệu .


6
+1 về tài liệu, đó là một tiêu chuẩn mã hóa mới từ Drupal 7 và nhiều mô-đun đóng góp cũng bắt đầu sử dụng nó cho D6. Lưu ý rằng thay vì một hàm trống, sẽ tốt hơn nữa khi bạn cung cấp một triển khai ví dụ để hiển thị những gì có thể được thực hiện với hook đó.
Berdir

1
Thông thường, bạn cung cấp mã cho hook được liệt kê trong MODULE.api.php nếu có một triển khai thực tế của hook đó.
kiamlaluno

0

Bạn cũng có thể tạo hook, sử dụng hook_trigger_info, bạn có thể tạo hook mới và trong mô-đun của bạn, bạn cần triển khai nó. Ví dụ, giả sử bạn muốn tạo một kho lưu trữ các nút và đặt các nút cũ vào đó. Bạn cũng muốn kích hoạt một hook khi hoạt động lưu trữ được thực hiện. nó sẽ là một cái gì đó như thế này

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

Sau khi xác định hook, mô-đun của bạn chịu trách nhiệm triển khai hook và các hành động bằng cách sử dụng module_invoke () hoặc module_invoke_all () .

Bạn có thể kích hoạt triggermô-đun để xem hook mới này trong tab nút.

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.