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

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

Данные уроки будут полезны, в первую очередь, начинающим друпалистам. А любителям Вордпресса — только для расширения кругозора.

Продолжаю развивать и улучшать свои сайты, сделанные на Друпале.
Не так давно подключила к ним модули, позволяющие создать связи между документами. Не нарадуюсь!

В работе этих модулей заключается одно из коренных отличий Drupal’а от WordPress’а.
Так, в Вордпрессе есть плагины «Похожие записи».
В Друпале, конечно, такие модули тоже есть.

Но… Может ли WP-вебмастер (блоггер) повлиять на выбор записей, которые показываются в блоке «Похожие записи»?
Ответ: либо вообще не может, либо с большим трудом, либо… надо искать другие пути.

Ну, а что делать, если вот к этой конкретной записи должны показываться несколько конкретных ссылок?.. — в WordPress фактически такие ссылки проставляются вручную. Если хорошенько покопаться, то можно найти плагин, но…
Но как правило, WP-блоггеры подобными мелочами не заморачиваются. Подавляющее большинство успокаиваются на плагине «Похожие записи», возможно со слайдером.

А зато в Друпале!..

Вполне понятно, что блоки «Похожие записи» очень легко установить. Причем, их «похожесть» может зависеть от чего угодно: от тегов (т.е. тем), от словарей таксономии (то есть групп тегов), от пользователей (то есть авторов материалов), от… ещё доброго десятка всяких разных зависимостей. Вообще-то о «Похожих записях» в Друпале надо рассказывать отдельно, подробно и не один раз.

Поэтому возвращаемся к вопросу:
Как в посте вывести блок конкретных ссылок? То есть к вот этому материалу должны показываться вот такие ссылки. А вот к тому материалу — другие…
Вполне понятно, что хочется, чтобы они показывались «красивенько-аккуратненько».
И еще немаловажное требование: надо, чтобы на установку ссылок уходило как можно меньше времени. Потому что речь идет о многостраничных тематических сайтах — например, библиотеках. (Мелкие сайты на Друпале делать почти бессмысленно. Хотя, конечно, можно. Ну так там и связи такие жёсткие не нужны).

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

Что выбрать:

Node Reference или Entity Reference?

В некоторых случаях — всё равно.
Оба модуля работают хорошо. И предоставляют схожие возможности.

Подробнее о модуле Node Reference.

Он отображает только связи между нодами — то есть просто ссылки на связанные документы. Вероятно, с помощью Views можно как-то ухитриться показать документ не ссылкой, а в более полном варианте. Но если простой связки не хватает, то… чуть позже будет отдельный урок о более продвинутом модуле Entity Reference.

Начинаем работу с модулем Node Reference

Скачать, установить, включить — стандартно. Настроек модуля нет.

К примеру, на сайте нашей общественной организации такой «простой» связи вполне достаточно: Человек-автор -> его книги; статьи; другие его материалы; статьи о нём.
Соответственно, с книг и статей идёт ссылка -> на страничку Автора.

Смотрим на страничку одного из Авторов.

Видим, что ссылки разделены на несколько «блоков»: Авторские книги; Статьи в книгах; Материалы про автора как персоналию; Галерея.

Итак, надо продумать побольше всяких возможных связей и создать в типе материала «Автор» соответствующие поля. К примеру, Автор (в библиотечке) может выступать ещё как Редактор, Переводчик…

Теперь в типе материала «Автор» создаём дополнительное поле «Авторские книги».
Тип поля: Node Reference.
Виджет: «Автодополнение текстового поля». Среди вариантов виджета есть еще варианты: «Выбор из списка», «Переключатель». Но их можно использовать только в том случае, если в списке мало пунктов. Поскольку у нас книг и статей очень много, то лучше брать именно «Автодополнение».
В настройках поля дальше включаем вариант автодополнения: «начинается с» или «содержит». Вариант «Начинается с» работает чуть быстрее. Но зато вариант «содержит» — легче «ухватывает суть».

Ниже выбрать типы материалов, с которыми может быть связан Человек в данной своей ипостаси Автор книги. В случае «Книги автора» я выбрала типы «Сборник», «Книга», «Страница подшивки» (кликабельно):

Настройка node reference

Всё. Настройку одного поля мы сделали.
Повторяем эту же процедуру для других дополнительных полей, которые потом станут разделами в перечне ссылок на страничке Автора.

При подготовке дополнительного поля «Статьи автора» — выбираю тип материала соответственно «Статья» и «Страница подшивки».
При подготовке поля «Галерея»…
— Кэп, какой тип материала мы выберем для дополнительного поля «Галереи»? Галерея?!.. Да что ты! поразительно!

Вот. Мы создали несколько дополнительных «связующих» полей для типа материала «Автор».

Теперь идем к типу материала «Книга».
Здесь надо создать дополнительное поле «Автор книги». Опять же настраиваем тип поля Node Reference, виджет — Автодополнение.
Отличие только в том, что в связях с типами контента ставим галочку на типе контента «Автор».

После того, как мы сделали дополнительное поле (поля) в типах «Автор» и «Книга», — можно создавать эти двухсторонние связи непосредственно в материалах — нодах.

Пробуйте! — уверена: вам эта процедура понравится. 🙂

Именно таким образом организованы двусторонние связи между авторами и их книгами в известных библиотеках, сделанных тоже на Друпале (спасибо, Кэп!), Либрусек и Флибуста.

Вооот. Это уже интересно. И значительно отличается от свободной перелинковки с помощью блока «Похожие записи».

И кроме того — в отличие от Вордпресса связи, однажды созданные с помощью модуля Reference, не потеряются, даже если статья с одной или другой стороны «цепи» будет переименована. ага! — об этом позаботится сама структура Друпала.


Но если этой простой «ссылочной» связи всё равно не хватает?

Читайте следующие…

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

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

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

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

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

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


.

2 комментария: Надёжные связи — всегда в удовольствие!

  • АлексейNo Gravatar (8 comments):

    Василенко Микола Олександрович — улыбнул )))

    • DivaDiiNo Gravatar (645 comments):

      Алексей, не понимаю, почему.
      Это его реальное украинское фамилия-имя-отчество. Я не стала менять на Николая Александровича. Потому что мне так даже привычнее. У меня язык не поворачивается назвать его имя в русском варианте.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сколько будет? *



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

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

Печное отопление частного.

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

Подпишись!


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




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



с помощью FeedBurner

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

Наш опрос:

Получили ли Вы полезную информацию в блоге "Палю тему"?

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

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

Цифирь: