Использование Entity Reference
В предыдущем посте о Друпале мы увидели, как работает модуль Node Reference. И пришли к выводу, что с его помощью легко и удобно устанавливаются связи ссылками между конкретными документами (нодами) сайта.
Но иногда даже такой связи — маловато. Хочется чего-то ещё более грандиозного.
И тогда на помощь сайтостроителю приходит совершенно потрясающий модуль Entity Reference.
Он развивается больше, чем ранее описанный Node reference. Идея модуля Entity Reference (что в переводе означает «Связь между сущностями») заключается в том, что связи можно устанавливать не только между нодами (документами, страницами), но и другими «сущностями» — допустим, Views’ами, панелями, файлами… Надо ещё хорошенько почесать в затылке, чтобы придумать, с чем ещё можно связывать документы.
Кроме того, к модулю Entity Reference есть дополнительный интересный модуль Entity Reference Multiple Display. А вот этот модуль позволяет любую связь отобразить по-разному: в полном виде, анонс, ссылка, RSS. И можно придумать ещё дополнительные виды отображения…
Ниже будут примеры, показывающие работу этих двух модулей.
Настройка модуля Entity Reference
Поэтому берём связку: Entity API (нужно для работы модуля) + Entity Reference + Entity Reference Multiple Display
Скачиваем (выше указаны ссылки), устанавливаем, включаем — стандартно.
В настройках эти модули опять же не нуждаются, как и в случае использования модуля Node reference. А все настройки делаются тоже в типе материала.
Только теперь в типе материала создаётся дополнительное поле (или несколько полей), тип которого: Entity Reference. Виджет: Автодополнение.
Затем в «глубоких» настройках на следующем экране нужно указать, с какими типами материалов может связываться этот тип материала, сколько может быть связей, и другие более «тонкие» настройки.
Мне достаточно режима Simply (by bundle). А вы можете дополнительно попробовать режим Views.
До сих пор подключение модуля Entity Reference было похоже на подключение более простого Node reference.
Но теперь… я покажу интересную фишку, которой нет в модуле Node reference.
Примеры использования Entity Reference
Модуль Entity Reference я использую на своем сайте афоризмов.
Задумка была очень-очень давнишняя. И эту задумку я когда-то даже стала воплощать в отдельном небольшом проекте. Но потом… благополучно его забросила — потому что не хватало сил, времени, энергии. И самое главное — я понимала, что сам технический подход к исполнению этой задумки неверен.
И вот только теперь… — после переноса сайта афоризмов на Друпал я потихоньку буду правильно воплощать эту задумку.
Теперь этой задумкой уже можно поделиться, конечно. И примеры вы увидите ниже.
Есть такое выражение:
На каждую сентенцию есть сентенция с противоположным смыслом. Пословицы надо цитировать парами, по одной они верны лишь наполовину.
Но на самом деле, мудрецы, изрекающие афоризмы, не только спорят между собой; иногда они соглашаются или дополняют идеи предыдущего «оратора», иногда уточняют, предлагают другой ракурс…
Эти беседы через века легче увидеть на конкретных примерах.
Пример №1: первоисточник и развитие идеи
Пример №2: первоисточник и другой, шутливый ракурс
Вау!!
Ага! Я же предупреждала, что будет интересно.
В таком — полном — виде связи между документами отображаются именно с помощью модуля Entity Reference плюс «примочки» к нему Entity Reference Multiple Display.
Ремарка: таких «пар» или даже «цепочек» афоризмов на моём сайте довольно много.
Осталось уточнить один важный нюанс.
Отображение связей с помощью Entity Reference
А именно — по поводу отображения второго связанного документа.
(В модуле Node reference дополнительных настроек отображения нет).
Заходим: Тип контента -> Афоризм -> Отображение полей
В отображении «Анонс» все дополнительные поля для связей делаем скрытыми (кликабельно!):
А в отображении «Содержимое полностью» выводим дополнительные «связующие» поля как анонс: Rendered as Анонс:
Это важно в тех случаях, когда две ноды будут ссылаться одна на другую, то есть — если связи будут взаимными, двунаправленными. Тогда надо обязательно выбрать АНОНС.
Если в полном материале выводить «связанный» второй документ тоже полный, — то может получиться бесконечный цикл. И тогда на этих страницах — получите ошибки.
Итак, в данном уроке мы подробно разобрали, как использовать Entity Reference, как с помощью этого модуля не только связать документы между собой, но и громко отобразить эти связи.
В завершение урока надо еще добавить, что к модулю Entity Reference есть ещё много других добавочных модулей-примочек, которые позволяют вебмастеру связывать документы и отображать эти связи другими необычными способами.
Пользуйтесь! — и получайте удовольствие.
Уроки по связям в Друпале:
1. Надёжные связи — всегда в удовольствие! Использование Node Reference
2. Удивительная связь: Использование Entity Reference — эта запись.
3. Свободные связи: Использование модуля Freelinking (вики-стиль).
регистрация доменов домен RU - 99 руб домен РФ - 99 руб |
Тут была реклама Google Adsense. Почему я её убрала?
Похожие записи:
