Điểm:0

Móc cho trường không được kích hoạt khi sử dụng delta trong mẫu

lá cờ ie

Tôi đã cố nối trường loại Liên kết của mình với tên máy "field_link". Trường này được hiển thị trong mẫu bằng cách sử dụng chỉ mục delta để trích xuất một số giá trị, ví dụ:

{{ content.field_link[0]['#title'] }}

Tôi đã nhận thấy rằng khi tôi sử dụng nội dung.field_link[0] hoặc nội dung.field_link.0 cái móc của tôi HOOK_pre process_field__field_link(&$vars, $hook) không được kích hoạt. Nhưng ngay sau khi tôi sử dụng nội dung.field_link các móc hoạt động.

Có một số cách giải quyết khác hoặc sử dụng đồng bằng để trích xuất một số giá trị của trường không phải là cách thực hành tốt nhất?

Cảm ơn

Kevin avatar
lá cờ in
Đây là những mảng kết xuất. Ví dụ đầu tiên in một giá trị trong khi ví dụ thứ hai kích hoạt chức năng hiển thị để tạo đầu ra. Đó là lý do tại sao. Nếu bạn cần một cái gì đó khác với mặc định, bạn nên sử dụng một trình định dạng trường hoặc xử lý trước các biến mới cho mẫu.
Điểm:1
lá cờ in

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_formhook_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.

Patrick Star avatar
lá cờ ie
Tôi sử dụng deltas để trích xuất các giá trị và loại bỏ các mẫu lồng nhau của drupal vì hầu hết thời gian tôi tự làm. Nhưng như tôi thấy đây không phải là một ý kiến ​​hay. Hiện tại, vấn đề của tôi là tôi đã tạo tiện ích con tùy chỉnh cho trường Liên kết và tôi muốn nhận một số giá trị bổ sung từ tiện ích con này vào mẫu của mình. Cám ơn phản hồi của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.