Drupal 8: Визуализация элемента коллекции полей в шаблоне ветки
В Drupal 8 у меня есть тип контента, который использует модуль сбора полей следующим образом:
-
field_body
(Сбор данных на местах, повторяемый)-
field_image_alignment
(Логическое) -
field_picture
(Изображение) -
field_free_text
(Длинный текст)
-
Я хочу обсудить тему этих полей.
Я переопределил шаблон поля файлом с именем field--node--field-body--news.html
(новости - это тип контента, содержащий поля тезисов.).
Шаблон по умолчанию следующий:
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
И мой переопределенный шаблон выглядит так:
{% for item in items %}
{% if item.content['#field_collection_item'].field_image_alignment.value == 1 %}
{{ dump(item.content['#field_collection_item'].field_picture) }}
{% endif %}
{% endfor %}
Как я могу отобразить "дочерние" поля field_pictures
, field_free_text
?
Я использовал item.content['#field_collection_item'].field_image_alignment.value
для доступа к простому значению, но я хотел бы иметь визуализированное представление.
Большое спасибо.
2 answers
Я только начал изучать Drupal и столкнулся с той же проблемой. Я решил эту проблему, создав пользовательский форматировщик полей:
public function viewElements(FieldItemListInterface $items, $langcode)
{
$elements = array();
foreach ($items as $delta => $item)
if ($item->value !== NULL)
{
$builder = \Drupal::entityTypeManager()->getViewBuilder('field_collection_item');
$elements[] = $builder->build($builder->view($item->getFieldCollectionItem()));
}
return $elements;
}
Используйте этот модуль для приятного просмотра формата таблицы Ссылка: https://www.drupal.org/project/reference_table_formatter