Let's assume you have a paragraph SimpleBlock with Title+Text fields. You also have a node with field_paragraphs reference to SimpleBlock paragraph.
You can add any paragraph to field_paragraphs. But you can't set there a default value. For example if you want to display 3 default SimpleBlock if there are no references in field_paragraphs.
One of the solutions is to use "Paragraphs Library", but in this case you need to add this paragraph to every node.
But I want something automatic and to use the same styles from twig templates.
So, let's copy default node.html.twig to node--page--full.html.twig in our theme's folder. Add the code.
{% if node.field_paragraphs[0] is not empty %} {{ node.field_paragraphs }} {% else %} {% include [ '@my_theme/custom/simple_block_defaults/default.html.twig', '@my_theme/custom/empty.html.twig' ] %} {% endif %}
Create file @my_theme/custom/simple_block_defaults/default.html.twig with code:
{% set items = { '0': { 'content': { '#type': 'inline_template', '#template': include('@my_theme/paragraph/paragraph--simple-block.html.twig', {'content': { 'field_paragraph_title': 'Title 1', 'field_paragraph_text': { '#markup': 'Text 1' }, }}) }}, '1': { 'content': { '#type': 'inline_template', '#template': include('@my_theme/paragraph/paragraph--simple-block.html.twig', {'content': { 'field_paragraph_title': 'Title 2', 'field_paragraph_text': { '#markup': 'Text 2' }, }}) }}, } %} {% include '@rt_base/field/field--field-simple-block.html.twig' with {'items': items} %}
In my case it was very useful, since I have multilingual defaults. And every language can have different amount of items which dont need to be translated in BO.
Add new comment