Điểm:1

Gọi một mẫu twig tùy thuộc vào số lượng mục trường

lá cờ cn

Tôi cần gọi các mẫu nhánh khác nhau của trường hình ảnh tùy thuộc vào số lượng mục của trường này. Nếu chỉ có 1 mục hình ảnh, tôi muốn sử dụng template1.html.twig. Nếu có > 1 mục hình ảnh, tôi muốn sử dụng template2.html.twig.

Điều đó có thể không? Nếu có, làm thế nào?

lá cờ cn
Bạn có thể sử dụng độ dài để thực hiện logic có điều kiện trong mẫu không? https://twig.symfony.com/doc/2.x/filters/length.html Nói cách khác, một mẫu nhưng bạn sử dụng độ dài để đếm số lượng mục và sau đó xử lý mẫu khác dựa trên mẫu đó.
lá cờ cn
Tôi biết cách sử dụng độ dài - đây sẽ là giải pháp của tôi khi tôi biết cách gọi các mẫu khác nhau. Tôi không biết mã để gọi 2 mẫu khác nhau khi chỉ có 1 (từ một mô-đun) và hoàn toàn biết đề xuất tên tệp (thay đổi).
Điểm:3
lá cờ ne

Có vẻ như đề xuất mẫu đơn giản được thêm từ mô-đun hoặc chủ đề tùy chỉnh dọc theo đoạn mã sau.

/**
 * Triển khai hook_theme_suggestions_HOOK_alter().
 */
function MYTHEME_theme_suggestions_field_alter(mảng &$suggestions, mảng $variables) {
  if ($variables['element']['#field_name'] === 'field_MYFIELD') {
    // Dự phòng.
    giá trị $ = '';

    /** @var \Drupal\Core\Field\FieldItemList $items */
    $items = $variables['element']['#items'];
    if ($items->count() == 1) {
      $values ​​= '__single_image';
    }
    nếu ($items->count() > 1) {
      $values ​​= '__trình chiếu';
    }

    $suggestions[] = 'field__' . $variables['element']['#field_name'] . giá trị $;
  }
}

Điều này sẽ cho phép bạn có trường--trường-MYFIELD--single-image.html.twig hoặc trường--trường-MYFIELD--slideshow.html.twig.

Xoá bộ nhớ cache!

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