#drupal #twig #drupal-8
#drupal #twig #drupal-8
Вопрос:
Я создал пользовательский тип контента с именем Question и имею несколько простых полей в дополнение к одному объекту ссылки, созданному модулем Paragraph. Я видел некоторую документацию о предложении шаблона, но я не понял, как их использовать. Как я могу использовать пользовательский шаблон, чтобы отобразить все мои вопросы?
Ответ №1:
Если вы добавили поля к сущности через административный интерфейс (т. Е. Управляете полями), то вам не нужно создавать пользовательский шаблон twig для общего отображения ваших полей.
То, что вы ищете, — это вкладка «Управление отображением» вашего пользовательского объекта. Вы можете настроить каждое поле для отображения по-разному через пользовательский интерфейс. Сюда входят ссылочные поля.
Вы также можете настроить отображение вашего объекта в соответствии с различными типами отображения, включая тизер.
https://www.drupal.org/docs/8/api/entity-api/display-modes-view-modes-and-form-modes
Комментарии:
1. Да, спасибо за ваш ответ @jhchnc Я знаю, что пытаюсь реализовать что-то другое, например, конкурс, мне нужно показать вопрос с ответами и предоставить кнопку для перехода к следующему ответу и, в конце концов, подсчитать, сколько правильных ответов дал пользователь. Итак, мне нужен способ отображения данных в шаблоне вопрос и ответы с флажками!
2. Я понимаю, что у вас есть тип объекта вопроса. Как ваши ответы связаны с этим объектом? Являются ли они полями? Это ссылочный объект?
3. ссылочный объект @jhchnc
Ответ №2:
Вы можете скопировать node.html.twig из вашей базовой темы (Classy) и скопировать в папку с активным шаблоном темы и переименовать в node—[content-type-mechine-name]—teaser.html.twig.
Если вы используете {{ content }}, он должен выводить содержимое так, как вы настроили в управляемом дисплее (admin /structure /types/manage/[content-type]/display). Это поведение по умолчанию.
Если вы хотите больше контроля и отображения по полю, вы можете сделать что-то вроде этого.
<div class="left">
{{ content.field_abc }}
</div>
<div class="right">
{{ content.field_xyz }}
</div>