Score:0

บล็อกขยาย บล็อกที่มีช่องย่อหน้า และช่องย่อหน้า 3 ช่อง... วิธีวนซ้ำย่อหน้าจากส่วนขยายบล็อก

ธง cn

นี่คือสิ่งที่ฉันมี:

ฉันมีไฟล์กิ่งไม้สามไฟล์:

  1. block--paragraph-images.html.twig (ซึ่งขยายจาก block.html.twig)
  2. field--field-paragraph-image-block.html.twig (ฟิลด์ย่อหน้าที่อยู่ในประเภทบล็อกที่กำหนดเอง block--paragraph-images.html.twig.)
  3. ย่อหน้า--field-paragraph-image.html.twig (ซึ่งมีสามฟิลด์: field_paragraph_image, field_paragraph_title และ field_paragraph_text)

ฉันสามารถเข้าถึงแต่ละฟิลด์ในย่อหน้า--field-paragraph-image.html.twig จากบล็อก--paragraph-images.html.twig แต่จะแสดงเฉพาะรายการแรกเท่านั้น ฉันต้องวนซ้ำช่องย่อหน้าใน field--field-paragraph-image-block.html.twig ฉันพยายามดำเนินการทุกอย่างจาก block--paragraph-images.html.twig เพื่อให้จัดการไฟล์ได้ง่ายขึ้น สิ่งนี้ทำได้?

สิ่งที่ฉันมีด้านล่างแสดงเฉพาะดัชนีแรกในอาร์เรย์ ถ้าฉันไม่แสดงความคิดเห็นคำสั่งวนรอบ มันจะแสดงประมาณ 12 แต่ละดัชนีแรกในอาร์เรย์ สิ่งที่ฉันต้องการคือดัชนีแต่ละย่อหน้าแสดงเพียงครั้งเดียวในกริด

0, รูปภาพ, ชื่อเรื่อง, ข้อความ

1 รูปภาพ ชื่อเรื่อง ข้อความ

2 รูปภาพ ชื่อเรื่อง ข้อความ

ความช่วยเหลือและคำแนะนำใด ๆ ที่ชื่นชม

{% บล็อกเนื้อหา %}

    {# ช่องบล็อก #}
    {% set paragraph_count = content.field_paragraph_image_block['#items']|ความยาว %}
    {% ตั้ง paragraph_count_css = 'grid-cols-' ~ ย่อหน้า %}

    {# ช่องย่อหน้า #}
    {% กำหนด paragraph_title = content.field_paragraph_image_block.0["#paragraph"].field_paragraph_title.value %}
    {% set paragraph_text = content.field_paragraph_image_block.0["#paragraph"].field_paragraph_text.value %}
    {% set media_id = content.field_paragraph_image_block.0["#paragraph"].field_paragraph_image.target_id %}
    
    <div class="block__content ภาพ-ย่อหน้า mb-0 ตารางช่องว่าง-4 {{ ย่อหน้า_นับ_css }} " >
        {% ตั้งวรรค_คลาส = [
            'เอฟเฟกต์ย่อหน้ารูปภาพ'
            'ภาพนับ-' ~ วรรค_count,
        ] | จัดเรียง | เข้าร่วม (' ') | ตัดแต่ง %}

       {# {% สำหรับรายการใน content.field_paragraph_image_block %} #}
            <div class="{{ วรรค_คลาส }}">
                    {{ drupal_entity('สื่อ', media_id) }}
                    {{ ย่อหน้า_ชื่อเรื่อง }}
                    {{ ย่อหน้า_ข้อความ }}
            </div>
       {# {% สิ้นสุดสำหรับ %} #}
    </div>

{% บล็อกท้าย %}
Score:1
ธง cn

พบวิธีแก้ปัญหานี้ คุณ สามารถ มีไฟล์ twig เพียงไฟล์เดียว บล็อกไฟล์ twig แบบกำหนดเอง และเข้าถึงฟิลด์ภายในย่อหน้า

ย้ายตัวแปรย่อหน้าไปไว้ข้างใน for ลูป และแทนที่ตัวแปรดังนี้:

รหัสเก่า

["#วรรค"].field_paragraph_title.value

รหัสใหม่

item.entity.field_paragraph_title.value

และแทนที่ for วนซ้ำดังนี้:

รหัสเก่า

{% สำหรับรายการใน content.field_paragraph_image_block %}

รหัสใหม่

{% สำหรับรายการใน content.field_paragraph_image_block['#items'] %}

นี่คือโค้ดใหม่ใน block--paragraph-images.html.twig ไม่จำเป็นต้องใช้กิ่งอื่นๆ:

{% บล็อกเนื้อหา %}
    {# ช่องบล็อก #}
    {% set paragraph_count = content.field_paragraph_image_block['#items']|ความยาว %}
    {% ตั้ง paragraph_count_css = 'grid-cols-' ~ ย่อหน้า %}

   <div class="block__content ภาพ-ย่อหน้า mb-0 ตารางช่องว่าง-4 {{ ย่อหน้า_นับ_css }} " >

    {% สำหรับรายการใน content.field_paragraph_image_block['#items'] %}

        {# ช่องย่อหน้า #}  
        {% กำหนดย่อหน้า_ชื่อเรื่อง = item.entity.field_paragraph_title.value %}
        {% กำหนดย่อหน้า_ข้อความ = item.entity.field_paragraph_text.value %}
        {% set media_id = item.entity.field_paragraph_image.target_id %}

        {% ตั้งวรรค_คลาส = [
            'เอฟเฟกต์ย่อหน้ารูปภาพ'
            'ภาพนับ-' ~ วรรค_count,
        ] | จัดเรียง | เข้าร่วม (' ') | ตัดแต่ง %}

            <div class="{{ วรรค_คลาส }}">
               {{ drupal_entity('media', media_id, 'original_size') }}
               {{ ย่อหน้า_ชื่อเรื่อง }}
               {{ ย่อหน้า_ข้อความ }}
            </div>
     {% สิ้นสุดสำหรับ %}
    </div>
{% บล็อกท้าย %}

โพสต์คำตอบ

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