Score:1

การเรียกเทมเพลตกิ่งไม้ขึ้นอยู่กับจำนวนของรายการฟิลด์

ธง cn

ฉันต้องเรียกเทมเพลตกิ่งต่างๆ ของฟิลด์รูปภาพโดยขึ้นอยู่กับจำนวนรายการของฟิลด์นี้ หากมีรายการรูปภาพเพียง 1 รายการ ฉันต้องการใช้ template1.html.twig หากมีรายการรูปภาพมากกว่า 1 รายการ ฉันต้องการใช้ template2.html.twig

เป็นไปได้ไหม? ถ้าใช่ อย่างไร?

cn flag
คุณสามารถใช้ความยาวเพื่อทำเงื่อนไขเชิงตรรกะในเทมเพลตได้หรือไม่? https://twig.symfony.com/doc/2.x/filters/length.html กล่าวอีกนัยหนึ่ง เทมเพลตเดียว แต่คุณใช้ความยาวเพื่อนับจำนวนรายการ แล้วประมวลผลต่างกันตามนั้น
cn flag
ฉันรู้การใช้ความยาว - นี่จะเป็นวิธีแก้ปัญหาของฉันเมื่อฉันรู้วิธีเรียกเทมเพลตต่างๆ ฉันไม่รู้รหัสที่จะเรียกเทมเพลตที่แตกต่างกัน 2 แบบเมื่อมีเพียง 1 (จากโมดูล) และทราบคำแนะนำชื่อไฟล์ (แก้ไข) อย่างแน่นอน
Score:3
ธง ne

ฟังดูเหมือนคำแนะนำเทมเพลตอย่างง่ายที่เพิ่มจากโมดูลหรือธีมที่กำหนดเองตามตัวอย่างต่อไปนี้

/**
 * ใช้ hook_theme_suggestions_HOOK_alter()
 */
ฟังก์ชัน MYTHEME_theme_suggestions_field_alter (อาร์เรย์ &$คำแนะนำ, อาร์เรย์ $ตัวแปร) {
  ถ้า (ตัวแปร $ ['องค์ประกอบ'] ['#field_name'] === 'field_MYFIELD') {
    // รั้งท้าย.
    $values ​​= '';

    /** @var \Drupal\Core\Field\FieldItemList $items */
    $items = $variables['element']['#items'];
    ถ้า ($items->count() == 1) {
      $values ​​= '__single_image';
    }
    ถ้า ($items->count() > 1) {
      $values ​​= '__สไลด์โชว์';
    }

    $suggestions[] = 'field__' . $variables['element']['#field_name'] ค่า $;
  }
}

สิ่งนี้จะช่วยให้คุณมี field--field-MYFIELD--single-image.html.twig หรือ field--field-MYFIELD--slideshow.html.twig.

ล้างแคช!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา