Использование Entity Reference в Drupal

Использование 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 дополнительных настроек отображения нет).

Заходим: Тип контента -> Афоризм -> Отображение полей

В отображении «Анонс» все дополнительные поля для связей делаем скрытыми (кликабельно!):

Настройка Entity Reference

А в отображении «Содержимое полностью» выводим дополнительные «связующие» поля как анонс: Rendered as Анонс:

Настройка Entity Reference

Это важно в тех случаях, когда две ноды будут ссылаться одна на другую, то есть — если связи будут взаимными, двунаправленными. Тогда надо обязательно выбрать АНОНС.

Если в полном материале выводить «связанный» второй документ тоже полный, — то может получиться бесконечный цикл. И тогда на этих страницах — получите ошибки.

Итак, в данном уроке мы подробно разобрали, как использовать Entity Reference, как с помощью этого модуля не только связать документы между собой, но и громко отобразить эти связи.

В завершение урока надо еще добавить, что к модулю Entity Reference есть ещё много других добавочных модулей-примочек, которые позволяют вебмастеру связывать документы и отображать эти связи другими необычными способами.
Пользуйтесь! — и получайте удовольствие.


Уроки по связям в Друпале:

1. Надёжные связи — всегда в удовольствие! Использование Node Reference

2. Удивительная связь: Использование Entity Reference — эта запись.

3. Свободные связи: Использование модуля Freelinking (вики-стиль).

регистрация доменов
домен RU - 99 руб
домен РФ - 99 руб
www.

Тут была реклама Google Adsense. Почему я её убрала?

Не забывайте подписываться на rss и/или твиттер блога. Нажимайте на лайки.  Сделала и веду больше 15 сайтов. Точная цифра - всё время меняется. Подробнее - читайте на странице "Мои проекты". DivaDii (ДиваДии)


.

Комментарии запрещены.

DivaDii, aka Надежда Лях на Google+  Вверх
Плюсани!

Интересная тема!

Блок хаус наружный цена на http://golt.by.

Записи по месяцам:

Подпишись!


Читать Палю Тему в Твиттере




Введите Ваш email-адрес:



с помощью FeedBurner

Рассылки Subscribe.Ru
Лента "Палю тему"

Наш опрос:

Труднее сайт загнать в индекс:

Результаты опроса

Загрузка ... Загрузка ...

Цифирь: