@magary4

Render полей через сниппеты?

На многих страницах я получаю в шаблон обьект типа Content и вывожу его поля

<div class="place-for-first-field">
    <!-- тут проверка о том что поле существуюет и что оно не пустое плюс еще какое-то специфическое условие -->
    <div class="list of classes for first field">		
        {{ content.getField('first_field')  . . .  }}
    </div>
</div>

<div class="place-for-second-field">
    <!-- тут тоже проверка о том что поле существуюет и что оно не пустое плюс еще какое-то другое   специфическое условие -->	
    <div class="container">
       <span class="wrap around field2">
       {{ content.getField('second_field')  . . .  }}
       </span>
    </div>
</div>


какая практика лучшая для этого?
чтоб в вынести из шаблона эти проверки и html-обертки и определять их в зависимости от типа поля
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 1
by25
@by25
Веб-разработчик
Как вариант эти фрагменты нарезать на минишаблоны и после их инклудить:

{# fields/_ first_field.html.twig #}

<div class="place-for-first-field">
    <div class="list of classes for first field">		
        {{ content.getField('first_field')  . . .  }}
    </div>
</div>


И инслудим в шаблон:

{{ include('fields/_ first_field.html.twig', {'content': myContent}) }}


Если возвращаемые значения объекты и имеют фиксированное поведение (и отображение) и постояно реюзается в различных проектов можно создать TwigExtension, но это трудозатратнее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы