Модуль Entity Usage интересен всем тем, кто однажды открыл его для себя и остался удовлетворен его потребительскими свойствами. Кто не знает - это такой модуль с пёсьей мордой, изображенной на рисунке ниже. Функционал модуля позволяет выявлять всевозможные связи между различными сущностями. Если совсем уж простым языком, то модуль Entity Usage отображает список материалов, в которых (многократно и повторно) используется картинка этой самой морды.
Представление (Views), упомянутое внизу страницы drupal.org/docs/8/modules/entity-usage/installation-and-basic-usage, позволяет вытащить число раз использования, т.е. число материалов (страниц и т.д.), содержащих связанную сущность. Но если подойти нетрадиционно (что нынче в тренде), то можно заполучить от модуля гораздо больше полезной информации. В частности, информацию о входимости некой сущности НЕ ПРОСТО В СОСТАВ других сущностей, а в КОНКРЕТНЫЕ УЗЛЫ ИЕРАРХИЧЕСКИХ СТРУКТУР этих сущностей. С прямым попаданием в них. Редакция от 20.03.2021.
Создан 19.03.2021 18:21:14
Итак, имеется несколько документов, в структуру каждого из которых входит целый ряд связанных сущностей, как изображено на рисунке ниже.
Сущность _1.1 требование 1.1 (50638) (43808), к примеру, входит (внедрена) в структуры еще двух документов. Интересно ЩЕЛКНУТЬ ПО ССЫЛОЧКЕ И ПОПАСТЬ СРАЗУ В ТУ ПОЗИЦИЮ ЛЮБОГО ИЗ ЧЕТЫРЕХ ДОКУМЕНТОВ, ГДЕ ЭТА СУЩНОСТЬ РАСПОЛОЖЕНА, а не прокручивать документы и ничего не искать. Все четыре ссылки изображены на рисунке ниже (подчеркнуты красным).
Чтобы получилось примерно так (в любом из связанных документов):
Для этого пришлось настроить представление следующим образом (ОБЩИЕ НАСТРОЙКИ ПРЕДСТАВЛЕНИЯ):
Настроить контекстный фильтр: Content: ID:
Настроить Связь: field_entity_embed: Content:
Настроить поле: Content: Title:
Настроить поле: Content: Ссылка на Content:
Собственно, все. Но следует упомянуть, что для представления был включен и используется модуль EVA (шикарный, кстати, модуль). Модуль EVA, как и Entity Usage, используется с настройками по умолчанию.
Скорее всего, если напрячь мозг, можно настроить все значительно проще. Но не каждый выдержит такое 😜 При этом важно, что решение получилось нетрадиционным, универсальным, а результат - «на лице».
Образовалась некая «таксономия входимости». При переходе по ссылке «традиционной» таксономии всегда открывается страница, материалы на которой сортируются либо по датам, либо по алфавиту, либо еще в каком-либо порядке. В нашем же случае срабатывает «точное попадание» в цель.
Если Entity Usage в «чистом виде» всего лишь констатирует факт, что некая сущность сколько-то раз входит в состав неких иных сущностей ВООБЩЕ, в целом, то настроенный на «таксономию входимости» Views показывает, КУДА КОНКРЕТНО внедрена сущность - конкретную точку или узел иерархической структуры каждой сущности-реципиента.
Какие варианты использования (use case, если кто не въехал)? Автор использует «таксономию входимости» для автоматизации документирования и управления проектами. Обеспечивается возможность работать дистанционно, громадной проектной командой, в режиме реального времени, а также возможность немедленного просмотра результатов деятельности всех и каждого в отдельности.
Как-то так.
ЗЫ. И еще: почему-то Atlassian Confluence считается чуть ли не общепризнанным стандартом для ведения баз знаний. Так Drupal 9 всего с парой дополнительных модулей не только перекрывает возможности Atlassian Confluence, но и невозможное делает возможным. В Atlassian Confluence такой фокус с внедрением сущности в несколько других сущностей напрямую не прокатит.
ЗЗЫ. Точно говорят, что старость - не радость... Чтобы обеспечить «прямое попадание», необходимо дописать в node--ТИП_МАТЕРИАЛА.html.twig вот такую умность, выделенную жирным:
<article{{ attributes.addClass(classes).setAttribute('role', 'article') }} id="{{ node.id }}">
Только тогда и будет выполняться переход по ссылке с идентификатором в требуемую точку документа.