Cara membuat modul paragraf di ranting

8

Saya membuat template khusus untuk tema saya dan saya sedang membangun halaman page.html.twig. Saya ingin memanggil bidang simpul individu ke dalam baris terpisah. Saya telah berhasil menampilkan semuanya kecuali bidang paragraf.

Saya telah mencoba.

{{ node.field_benefits }}
{{ node.field_benefits.value }}
{{ paragraph.field_benefits }}
{{ paragraph.field_benefits.value }}
{{ node.paragraphs.field_benefits }}

Dan tidak ada yang berhasil. Adakah yang tahu struktur yang benar untuk dipanggil dalam modul paragraf?

Atau apakah untuk fungsi berfungsi

{% if node.field_benefits %}
{% for field_items in node.field_benefits %}
{{ field_item.value }}
{% endfor %}
{% endif %}
Megan McGowan
sumber
page.html.twig tidak menangani node ... hanya templat halaman keseluruhan. Anda menggunakan templat yang salah. Saya sarankan Anda mengganti template simpul sebagai gantinya (atau setidaknya membaca tentang cara ranting templat diakses). Selain itu, menyalakan ranting debug dan melihat kode sumber akan membantu Anda memastikan templat mana yang harus Anda ganti.
NikLP
Ok @NikLP Saya memindahkan semuanya ke level node, tetapi saya masih tidak dapat me-render modul paragraf - Saya menggunakan bidang yang telah saya peroleh dari debugging dan kint dan masih menampilkan baris kosong
Megan McGowan
Mungkin lihat ini? drupal.org/node/2444893
NikLP

Jawaban:

7

Pertama tambahkan paragraph--your_paragraph_machine_name.html.twigke direktori templat tema Anda.

Mengakses bidang paragraf Anda dapat dilakukan dengan menambahkan variabel ranting dalam format yang mirip dengan {{ content.field_your_field }}.

Jika Anda hanya menginginkan nilai bidang, itu sedikit rumit. Misalnya jika Anda memiliki bidang Daftar (teks) dan ingin mendapatkan nilai dari opsi yang dipilih, Anda bisa melakukan sesuatu seperti:

{% for item in content.field_select_list %}
  {% if item is iterable %}
    {% for key,value in item %}
      {% if not value is iterable %}
        {% if key == '#markup' %}
          {{ value }}
        {% endif %}
      {% endif %}
    {% endfor %}
  {% endif %}
{% endfor %}

Anda selalu dapat menjalankan a {{ dump(content) }}untuk melihat struktur dan mendapatkan nilai yang Anda cari. Semoga ini membantu!

EDIT: Anda dapat menghindari semua loop bersarang konyol. Contoh di atas harus ditulis seperti:

{% set value = content.field_select_list.0['#markup'] %}
{{ value }}

Untuk bidang Teks (biasa) mungkin terlihat seperti:

{{ content.field_text.0['#context'].value }}

Untuk mendapatkan nilai URL dari bidang Tautan, saya telah melihat saran seperti:

{{ content.field_link['#items'].0.value.uri }}

Tapi itu akan memiliki awalan "internal: /", jadi saya lebih beruntung dengan sesuatu seperti ini:

{{ content.field_link.0['#title'] %}
jimafisk
sumber
Anda dapat menggunakan paragraph.field_my_text.valuedalam templat paragraf apa pun untuk menampilkan nilai polos dan tidak diformat, seperti node.field_my_text.valuepada templat simpul.
Philipp Michael
bagaimana Anda mencetak paragraf - your_paragraph_machine_name.html.twig dari templat utama Anda?
Sam