Связи между нодами создаваемыми пользователями

Главные вкладки

Аватар пользователя megafanat megafanat 14 марта 2013 в 5:40

Есть два типа материала. Например автор и книга. Оба типа материала доступны для редактирования и заполнения пользователями.
Хочется, чтобы пользователи при редактировании материалов могли устанавливать связи между авторами и книгами, так, чтобы на странице книги была ссылка на страницу автора, а на странице автора был список книг.

Желательно сделать так, чтобы редактирование таких связей было максимально простым и понятным. Например при редактировании книги есть поле "Автор", в котором можно из списка выбрать авторов описанных на сайте. Так же не хочется, чтобы у пользователей при работе с сайтом была необходимость вникать, что такое таксономия и как ей правильно пользоваться.

Подскажите пожалуйста, как можно это реализовать наиболее простым способом?

Комментарии

Аватар пользователя olegmif olegmif 14 марта 2013 в 8:00

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

Аватар пользователя roman-yrv roman-yrv 14 марта 2013 в 8:27

Или можно задать автора через тип ноды.
А в книге задать поле Node Reference с типом "автозаполняемое текстовое поле", где и выбирать автора.
Причем, настроить так, чтобы ля одной книги можно было бы задавать несколько авторов.

А чтобы можно было добавить в базу нового автора при вводе новой книги, можно воспользоваться модулем References dialog

Аватар пользователя megafanat megafanat 14 марта 2013 в 15:38

"olegmif" wrote:
да все равно через таксономию. словарь "Авторы" сделать, привязать к книге, а у пользователя при редактировании книги либо появится список с авторами, либо поле с автодополнением, куда он автора впишет. и не надо ему ни во что вникать, нет?

Очень хочется, чтобы был список. Так как меня, например, поле с автодополнением вводит в ступор. Ну и к тому же в этом случае пользователи наплодят авторов, которые будут отличаться одной буквой и на самом деле будут одним автором.

А если будет список, то непонятно как добавлять нового автора.
Ну и к тому же нужно, чтобы можно было добавить автора независимо от того есть у него книги или нет.

"roman-yrv" wrote:
Или можно задать автора через тип ноды.
А в книге задать поле Node Reference с типом "автозаполняемое текстовое поле", где и выбирать автора.

А Node Reference позволяет на странице автора отобразить список его книг?

Аватар пользователя roman-yrv roman-yrv 14 марта 2013 в 16:11

"megafanat" wrote:
Ну и к тому же в этом случае пользователи наплодят авторов, которые будут отличаться одной буквой и на самом деле будут одним автором.

По моему, в случае использования авторов как элементов таксономии есть какой-то модуль, который позволяет бороться с такими вот дубликатами терминов.

"megafanat" wrote:
А Node Reference позволяет на странице автора отобразить список его книг?

Как это сделать без программирования и целиком на модулях - я, честно говоря, не знаю.

А можно это сделать следующим образом.

1. Создаете views по книгам, у которых в качестве аргумента будет выступать автор.

2. В своем модуле определяете hook_node_view, в котором для типа ноды "автор" определяете дополнительное поле для вывода списка книг.
В этом хуке программно запускаете созданный views, передавая ему аргументом nid ноды-автора. И далее полученный результат присваиваете значению поля, определенного в хуке hook_node_view.

Аватар пользователя roman-yrv roman-yrv 14 марта 2013 в 16:13

"megafanat" wrote:
Очень хочется, чтобы был список

Насчет списка - думаю, когда авторов будет очень много, это будет не очень удобно пользователям.