Puncte:0

Bloc de extensie, un bloc cu un câmp de paragraf și 3 câmpuri de paragraf... cum să parcurgeți paragrafele din extensia blocului

drapel cn

Asta am:

Am trei fișiere twig:

  1. block--paragraph-images.html.twig (care extinde block.html.twig)
  2. field--field-paragraph-image-block.html.twig (câmpul paragraf care se află în tipul de bloc personalizat, block--paragraph-images.html.twig.)
  3. paragraph--field-paragraph-image.html.twig (care găzduiește trei câmpuri: field_paragraph_image, field_paragraph_title și field_paragraph_text).

Pot accesa câmpurile individuale din paragraph--field-paragraph-image.html.twig din blocul--paragraph-images.html.twig, dar arată doar prima intrare. Trebuie să parcurg câmpurile de paragraf din câmpul--field-paragraph-image-block.html.twig. Încerc să execut totul de la bloc--paragraph-images.html.twig pentru a menține fișierele mai ușor de gestionat. Este acest lucru realizabil?

Ceea ce am mai jos arată doar primul index din matrice. Dacă decomentez instrucțiunea buclă, aceasta arată aproximativ 12 fiecare dintre primul index din matrice. Ceea ce am nevoie este ca fiecare index de paragraf să fie afișat o singură dată într-o grilă.

0, imagine, titlu, text

1, imagine, titlu, text

2, imagine, titlu, text

Orice ajutor și direcție este apreciată.

{% block content %}

    {# câmpuri blocate #}
    {% set paragraph_count = content.field_paragraph_image_block['#items']|lungime %}
    {% set paragraph_count_css = 'grid-cols-' ~ paragraph_count %}

    {# câmpuri paragraf #}
    {% set 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 image-paragraph mb-0 grid gap-4 {{ paragraph_count_css }} " >
        {% set paragraph_classes = [
            „efect-imagine-paragraf”,
            „număr de imagini-” ~ număr_paragraf,
        ] | sortare | join(' ') | tunde %}

       {# {% pentru articolul din content.field_paragraph_image_block %} #}
            <div class="{{ paragraph_classes }}">
                    {{ drupal_entity('media', media_id) }}
                    {{ paragraph_title }}
                    {{ text_paragraf }}
            </div>
       {# {% endfor %} #}
    </div>

{% endblock %}
Puncte:1
drapel cn

Am găsit soluția la această problemă. Tu poate sa aveți doar un fișier twig, fișierul bloc personalizat twig și accesați câmpurile din interiorul paragrafelor.

Mutați variabilele paragrafului în interiorul buclei for și înlocuiți variabilele astfel:

cod vechi

[„#paragraph”].field_paragraph_title.value

cod nou

item.entity.field_paragraph_title.value

și înlocuiți bucla for astfel:

cod vechi

{% pentru articol din content.field_paragraph_image_block %}

cod nou

{% pentru articol din content.field_paragraph_image_block['#items'] %}

Iată noul cod în block--paragraph-images.html.twig, nu sunt necesare alte crenguțe:

{% block content %}
    {# câmpuri blocate #}
    {% set paragraph_count = content.field_paragraph_image_block['#items']|lungime %}
    {% set paragraph_count_css = 'grid-cols-' ~ paragraph_count %}

   <div class="block__content image-paragraph mb-0 grid gap-4 {{ paragraph_count_css }} " >

    {% pentru articol din content.field_paragraph_image_block['#items'] %}

        {# câmpuri paragraf #}  
        {% set paragraph_title = item.entity.field_paragraph_title.value %}
        {% set paragraph_text = item.entity.field_paragraph_text.value %}
        {% set media_id = item.entity.field_paragraph_image.target_id %}

        {% set paragraph_classes = [
            „efect-imagine-paragraf”,
            „număr de imagini-” ~ număr_paragraf,
        ] | sortare | join(' ') | tunde %}

            <div class="{{ paragraph_classes }}">
               {{ drupal_entity('media', media_id, 'original_size') }}
               {{ paragraph_title }}
               {{ text_paragraf }}
            </div>
     {% endfor %}
    </div>
{% endblock %}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.