Петя пишет книжку о Пушкине для серии «Жизнь замечательных людей (ЖЗЛ)». Вася вообще пишет целую монографию о Пушкине. И Петя, и Вася — парни серьезные. Оба цитируют первоисточники — (источники данных или знаний — дневники, переписку поэта, документированные воспоминания современников — и ссылаются на них, пересыпая свои гениальные произведения библиографическими ссылками.
Петя и Вася, а ЗАЧЕМ?! Ведь можно ВНЕДРИТЬ фрагмент первоисточника и в книжку, и в монографию, избавив пытливого читателя от шараханья по библиографическим ссылкам, а себя от копипастинга? При этом к внедренному фрагменту автоматически прикрутятся ссылки на точки входа фрагмента в структуры первоисточника, книжки и монографии?
Это легко, если использовать авторскую такономию входимости. Редакция от 02.12.2024.
Создан 18.01.2022 16:28:19
Таксономия входимости — это некая сущность, происходящая от таксономии, входимости и зональной структуры изделия. Таксономия входимости не только указывает точку входа чего–либо в структуру чего–либо другого, но позволяет немедленно переместиться в указанную точку структуры.
Вот евровинт, полузакрученный в некую конструкцию из ЛДСП. Точно таких же евровинтов, полузакрученных в конструкцию, может быть до нескольких десятков. Но точно такие же евровинты (той же марки, сорта, типоразмера и т.д.) могут быть закручены и в стол, и в шкаф, и в тумбу, и в... Тоже в количестве нескольких десятков. При этом физически евровинтов МНОГО, а виртуально евровинт ОДИН.
Так вот таксономия входимости позволяет мгновенно перейти от евровинта, полузакрученного в объект, к этим же евровинтам, закрученным в стол, шкаф, тумбу, причем прямо в точки закрутки 🤣 Физически такое невозможно, а виртуально — запросто!
Автор реализовал таксономию входимости в Drupal 9 с применением модуля Entity Usage, применив его нетрадиционно.
Смотрите: |
Модуль Entity Usage в Drupal
Модуль Entity Usage интересен всем тем, кто однажды открыл его для себя и остался удовлетворен его потребительскими свойствами. Кто не знает — это такой модуль с пёсьей мордой, изображенной на рисунке ниже. Функционал модуля позволяет выявлять всевозможные связи между различными сущностями. Если совсем уж простым языком, то модуль Entity Usage отображает список материалов, в которых (многократно и повторно) используется картинка этой самой морды.
Представление (Views), упомянутое внизу страницы drupal.org/docs/8/modules/entity–usage/installation–and–basic–usage, позволяет вытащить число раз использования, т.е. число материалов (страниц и т.д.), содержащих связанную сущность. Но если подойти нетрадиционно (что нынче в тренде), то можно заполучить от модуля гораздо больше полезной информации. В частности, информацию о входимости некой сущности НЕ ПРОСТО В СОСТАВ других сущностей, а в КОНКРЕТНЫЕ УЗЛЫ ИЕРАРХИЧЕСКИХ СТРУКТУР этих сущностей. С прямым попаданием в них.
Нетрадиционное применение модуля Entity Usage в Drupal для организации таксономии входимости
Итак, имеется несколько документов, в структуру каждого из которых входит целый ряд связанных сущностей, как изображено на рисунке ниже.
Сущность _1.1 требование 1.1 (50638) (43808), к примеру, входит (внедрена) в структуры еще двух документов. Интересно ЩЕЛКНУТЬ ПО ССЫЛОЧКЕ И ПОПАСТЬ СРАЗУ В ТУ ПОЗИЦИЮ ЛЮБОГО ИЗ ЧЕТЫРЕХ ДОКУМЕНТОВ, ГДЕ ЭТА СУЩНОСТЬ РАСПОЛОЖЕНА, а не прокручивать документы и ничего не искать. Все четыре ссылки изображены на рисунке ниже (подчеркнуты красным).
Чтобы получилось примерно так (в любом из связанных документов):
Для этого пришлось настроить представление следующим образом (ОБЩИЕ НАСТРОЙКИ ПРЕДСТАВЛЕНИЯ):
Настроить контекстный фильтр: Content: ID:
Настроить Связь: field_entity_embed: Content:
Настроить поле: Content: Title:
Настроить поле: Content: Ссылка на Content:
Собственно, все. Но следует упомянуть, что для представления был включен и используется модуль EVA (шикарный, кстати, модуль). Модуль EVA, как и Entity Usage, используется с настройками по умолчанию.
Скорее всего, если напрячь мозг, можно настроить все значительно проще. Но не каждый выдержит такое 😜 При этом важно, что решение получилось нетрадиционным, но универсальным, а результат — «на лице».
По итогам нетрадиционного применения модуля 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 }}">
Только тогда и будет выполняться переход по ссылке с идентификатором в требуемую точку документа.