Điểm:-1

Làm cách nào để xử lý đầu ra khác nhau cho cùng một khối (Sự cố bộ đệm)?

lá cờ cn

Tôi có một chủ đề có hai giao diện khác nhau cho khối menu chính, vì vậy tôi đã viết một đề xuất chủ đề như sau:

function MYTHEME_theme_suggestions_menu_alter(mảng &$suggestions, mảng $variables) {
  if ($variables['menu_name'] == 'main' và Drupal::service('path.matcher')
  ->isFrontPage()) {
    array_splice($suggestions, 1, 0, 'menu__main__front');
  }
}

để tôi có thể tạo chủ đề cho menu chính cho trang đầu theo cách riêng của nó. Vấn đề đặt ra là về cách hệ thống bộ nhớ đệm Drupal hoạt động với các khối để khi người dùng điều hướng đến các trang khác, nó sẽ sử dụng cùng một đầu ra khối được tạo cho trang đầu tiên. Lúc đầu, tôi nghĩ đó có thể là vấn đề đề xuất chủ đề nhưng sau đó tôi nhận ra rằng khi tôi xóa bộ nhớ đệm thì nó vẫn hoạt động tốt.

Bất kỳ đề xuất nào cho trường hợp khi chúng tôi muốn một khối được xuất theo cách khác dựa trên một số điều kiện?

lá cờ ru
Bạn cần thêm `bối cảnh` để thay đổi giao diện thành mảng `#cache`, trong trường hợp của bạn là `url.path`. Xem [Cách chính xác để đặt bối cảnh bộ đệm trên các khối tùy chỉnh là gì?](https://drupal.stackexchange.com/questions/223376/what-is-the-correct-way-to-set-cache-contexts-on -khối tùy chỉnh)
4uk4 avatar
lá cờ cn
Xem https://drupal.stackexchange.com/questions/182005/is-front-is-not-available-in-all-templates
Điểm:0
lá cờ de

Bất kỳ đề xuất nào cho trường hợp khi chúng tôi muốn một khối được xuất theo cách khác dựa trên một số điều kiện?

Bạn muốn Bối cảnh bộ đệm: https://www.drupal.org/docs/drupal-apis/cache-api/cache-contexts

Bối cảnh bộ đệm cung cấp một cách khai báo để tạo phụ thuộc vào ngữ cảnh các biến thể của một cái gì đó cần được lưu trữ.

Như hudri đã nêu, bạn cần có ngữ cảnh bộ đệm trên url.path.

Đă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.