Drupal ссылка на несколько типов контента - PullRequest
1 голос
/ 04 октября 2010

Drupal имеет типы контента, установленные как:

- Book
- Contributor

Пользовательские поля CCK добавляются к вышеуказанным типам контента.

Автор имеет идентификатор типа, установленный как:

- Author
- Seller
- Reader

Указанный выше идентификатор типа участника должен быть добавлен (в настоящее время со ссылкой на узел) в «Книгу» с автором и типом раскаяния «Продавец».

пример:

Book                    Contributor     Contributor Type
--------------------------------    --------------  ---------------
Act Like a Lady, Think Like a Man   Steve Harvey    Atuhor
Act Like a Lady, Think Like a Man   Steve Harvey    Seller
The Alchemist               Paulo Coelho    Reader
The Happiness Project           Gretchen Rubin  Atuhor
The Happiness Project           Gretchen Rubin  Seller

Какой бы наилучший подход для достижения этого. С текущей настройкой мы можем добавить идентификатор участника, как добавить «тип участника» вместе с ним.

1 Ответ

1 голос
/ 04 октября 2010

Если я вас правильно понимаю

  1. У вас есть 2 типа контента. Book и Contributor
  2. Тип контента Book имеет поле ссылки на узел, которое указывает на узлы типа Contributor
  3. Вклад может быть трех видов: Автор, Продавец и Читатель
  4. Из типа содержимого Книги вы хотите иметь возможность выбрать вкладчик (через ссылку на узел) и пометить тип участника как читатель, продавец, автор и т. д. (В некоторых случаях вы хотите добавить «атрибут» для ссылки на узел или «описание» ссылки на узел)
  5. Также таким образом возможно, чтобы вкладчик был в более чем 1 категория. например Участником может быть как автор, так и продавец.

На самом деле, ваш вопрос, если я правильно понял, является хорошим. Ответ не тривиален. Вам нужно как-то «сгруппировать» поле ссылки на узел со списком выбора. Таким образом, каждый раз, когда вы делаете ссылку на узел, вы также выбираете тип участника. По сути, вы запрашиваете функцию «Multigroup». Он доступен только в CCK версии 3. Вы не можете сделать это с CCK версии 2, что вы, вероятно, используете. К сожалению, стабильная версия 3 CCK по-прежнему недоступна. Однако разработка доступна на http://drupal.org/node/484068. На сегодняшний день многие люди уже используют эту версию (см. http://drupal.org/project/usage/484068), и, насколько я знаю, она уже достаточно стабильна.

Итак, в итоге:

  1. Установите CCK 3.x-dev из http://drupal.org/node/484068 в папке sites/all/modules. Удалите папку CCK 2.x, если она там существует. Пожалуйста, делайте резервные копии и т. Д. Вашего сайта - на случай, если что-то сломается.
  2. Включить модуль Multigroup (в списке модулей CCK)
  3. Создать мультигруппу, назовем ее MG. Вы можете сделать это в разделе Управление полями -> Добавить Новая группа (выберите Multigroup из выпадающего списка)
  4. Создайте поле ссылки на узел для узлов участника, давайте его назовем Link to Contributor. Убедитесь, что родитель Link to Contributor является MG (вы можете достичь этого, схватив якорь и сдвинув поле вправо, так же, как вы делаете для иерархического дерева таксономии.
  5. Создать поле списка выбора типа участника с тремя вариантами (Продавец, читатель, автор). Позволяет назвать поле Contributor Type. Снова, убедитесь, что родитель MG.
  6. Теперь проверьте это, пытаясь создать узлы типа Book. Ты сможешь быть в состоянии выбрать участника и тип участника. Добавить Чтобы внести вклад в book, просто нажмите Add More Values в форме редактирования узла.
  7. Для интеграции Views вам необходимо установить Views version 3.0-alpha3 или выше. Вам нужно будет добавить фильтр в группе Content Multigroup.

И, кстати, с тех пор, как я нашел ваш вопрос интересным, я попробовал его, и, похоже, он работает правильно для меня!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...