Drupal → Диаграмма связей модуля Paragraphs Library

29.11.2024

Модуль Paragraphs Library позволяет переиспользовать один параграф в нескольких местах. У него достаточно запутанная архитектура, усугубляющаяся неоднозначным неймингом.

Модуль добавляет в друпал новый тип сущности Paragraphs library item и новый тип параграфа From library. При добавлении параграфа в "библиотеку" создаётся сущность Paragraphs library item, которая через поле paragraphs ссылается на созданный параграф. Т.е. "библиотека параграфов" это технически "библиотека сущностей Paragraphs library item", и на странице admin/content/paragraphs выводятся не параграфы, а так же сущности Paragraphs library item.

После этого, чтобы в ноде (условно) переиспользовать какой-то параграф, в неё добавляется параграф типа From library и выбирается добавленная ранее сущность Paragraphs library item.

Схематично это выглядит так:

Условная нода через условное поле field_paragraphs ссылается на параграф типа "From library".
Параграф "From library" через поле field_reusable_paragraph ссылается на сущность "Paragraphs library item".
Сущность "Paragraphs library item" через поле paragraphs ссылается на параграф.

Пример программного получения значения поля из конечного параграфа:

$node = Node::load(123);
$from_library_paragraph = $node->get('field_paragraphs')->first()->entity;
$paragraphs_library_item = $from_library_paragraph->get('field_reusable_paragraph')->entity;
$paragraph = $paragraphs_library_item->get('paragraphs')->entity;
$field_value = $paragraph->get('field_example')->value;
Похожие записи

Добавить комментарий