Điểm:2

Sự khác biệt/mục đích của khóa 'nội dung' và 'phần tử' trong tiền xử lý là gì?

lá cờ jp

Tôi đang sử dụng hook_pre process_node và nhìn vào biến $. Tôi có thể thấy có hai khóa giống nhau: Nội dungyếu tố. Tôi thấy rằng có một nhận xét trong mã lõi:

  // Biến nội dung $ hữu ích cho các mẫu.

bên cạnh mã sao chép tất cả yếu tố phím vào Nội dung... tôi không chắc tại sao Nó hữu ích, thế nào nó khác, và khi nào người ta sẽ sử dụng yếu tố hoặc Nội dung để đạt được một mục tiêu cụ thể.

Đây là một câu hỏi chung, nhưng nhiệm vụ của tôi hiện tại là tôi có hai trường tham chiếu thuật ngữ phân loại riêng biệt và tôi muốn kết hợp chúng, theo thứ tự bảng chữ cái theo tên thuật ngữ, thành một danh sách để trình bày.

Điểm:2
lá cờ cn

yếu tố là tên biến được định nghĩa trong theme_hook() để giữ các phần tử có thể hiển thị (đối với nút, đây là mảng xây dựng thực thể). Tiền xử lý sau đó chịu trách nhiệm chuẩn bị các biến để hiển thị, như Nội dung.

Nếu mục tiêu của bạn là sửa đổi đầu ra mẫu thì trước tiên hãy kiểm tra xem biến nào thực sự được in. Trong một mẫu nút, không có ý nghĩa gì khi thay đổi yếu tố trong quá trình tiền xử lý, mọi thay đổi bạn thực hiện sẽ bị loại bỏ. Tuy nhiên, bạn có thể làm điều này trong quá trình xây dựng, ví dụ như trong hook_entity_view_alter().

lá cờ jp
Vì vậy, mô-đun *nút* tạo ra một mảng kết xuất với tất cả dữ liệu của nút trong các mảng kết xuất bên dưới `'phần tử'`. Sau đó, `template_preprocess_node()` đặt giá trị mặc định cho nút, đây là nơi bắt nguồn toàn bộ *sao chép `phần tử` thành `nội dung`*. Vì vậy, điều này có nghĩa là `elements` chỉ còn lại ở đó "đề phòng" (?) nhưng về mặt tiếp tục quá trình kết xuất, `nội dung` bây giờ mới là điều quan trọng. Điều đó có đúng không?
4uk4 avatar
lá cờ cn
Có, nhưng trong trường hợp của bạn, bạn có thể muốn thay đổi mảng bản dựng trước khi nó chạm tới hook tiền xử lý. Điều này có vẻ giống như bạn muốn thay đổi mảng xây dựng, không theo chủ đề đầu ra.
lá cờ jp
Cảm ơn, tôi đã bắt đầu [câu hỏi khác](https://drupal.stackexchange.com/questions/309299/render-two-taxonomy-fields-in-one-alphabetical-list/309300#309300) cho phần đó của nhiệm vụ, để giữ cho mọi thứ rõ ràng hơ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.