Các hàm có tên bắt đầu bằng theme_ là các móc chủ đề, trong khi các hàm có tên bắt đầu bằng template_ là các hàm tiền xử lý và các hàm xử lý được thực hiện bởi mô đun thực hiện móc chủ đề tương đối.
Ví dụ: theme_image () là một hook hook theme hiển thị hình ảnh. template_pre process_node () là hàm tiền xử lý được thực hiện bởi mô đun Node, mô đun này thực hiện móc chủ đề nút . (Xem các dòng mã đầu tiên của node_theme () , triển khai hook_theme () được thực hiện bởi mô-đun Node.) Có các mô-đun khác có thể thực hiện chức năng tiền xử lý cho móc chủ đề nút , nhưng đối với các mô-đun đó, chức năng tiền xử lý đó được đặt tên MYMODULE_preprocess_node()
, không template_preprocess_node()
.
Một chủ đề có thể thực hiện cả hook hook theme (xem bartik_menu_tree () ) và hàm tiền xử lý (xem bartik_pre process_node () ). Sự khác biệt là bartik_menu_tree()
ghi đè cài đặt mặc định ( theme_menu_tree () ) khi chủ đề hiện tại là chủ đề Bartik, trong khi bartik_preprocess_node()
không ghi đè template_preprocess_node()
, nhưng nó được thực thi sau nó. (Xem tài liệu cho chủ đề () .)
Đối với việc sử dụng hai tiền tố, lý do là để ghi lại mục đích của hàm. Ngay cả khi theme_ được sử dụng trong cả hai trường hợp, sự khác biệt giữa theme_image()
và theme_preprocess_node()
vẫn sẽ rõ ràng, nhưng nó sẽ yêu cầu bạn đọc những gì tiếp theo theme_. Với cách thực hiện hiện tại, bạn chỉ cần đọc từ đầu tiên của tên hàm.
template_process_
/template_preprocess_
. Đó là sự khác biệt - một là chức năng chủ đề, một là chức năng xử lý / tiền xử lý cho chủ đề