Móc tiền xử lý trường chỉ hoạt động khi bạn kết xuất cánh đồng. Khi bạn bắt đầu trích xuất các giá trị khỏi đối tượng trường (chẳng hạn như các thuộc tính riêng lẻ hoặc vùng đồng bằng cụ thể), bạn sẽ không còn hiển thị chính trường đó, do đó không kích hoạt hook.
Tôi cũng không khuyên bạn nên trích xuất và hiển thị dữ liệu theo cách này vì bạn sẽ mất một số siêu dữ liệu đi kèm với các đối tượng này (ví dụ: khả năng lưu vào bộ nhớ cache, thông tin chủ đề, thông tin trình định dạng, sửa đổi từ các mô-đun khác, v.v.). Bạn có thể:
- Tạo một bộ định dạng trường cho loại trường đó và chỉ hiển thị một vùng đồng bằng cụ thể (bằng cách ghi đè
viewElements()
và chỉ thêm các vùng đồng bằng cụ thể). Bạn có thể cấu hình delta.
- Hoặc một sự kết hợp của
hook_field_formatter_third_party_settings_form
và hook_pre process_field
. Cái trước sẽ cho phép bạn lưu cấu hình vào cấu hình hiển thị trường, trong khi cái sau cho phép bạn chọn cấu hình đó và sửa đổi đầu ra của trường.
- Có thể tìm thấy một ví dụ điển hình về sự kết hợp này (mặc dù được sử dụng cho mục đích khác) trong hàng rào mô-đun.
Trong cả hai trường hợp, bạn có thể chọn làm cho chúng có thể định cấu hình thông qua quản trị viên và không mã hóa cứng lựa chọn delta thành mẫu. Bạn thậm chí có thể làm cho nó để bạn có thể bỏ qua cả hai hoàn toàn, để lại trường hiển thị đầu ra mặc định.