Вероятно, это не типы данных , но, скорее всего, типы контента . То, что вы ищете:
- Способ связать узлы (т.е. контент) одного типа контента с узлами другого (шеф-повар в ресторан, меню к ресторану, рецепт к меню и т. Д.).
- Способ отображения информации из связанных узлов (прямые или косвенные отношения) при отображении определенного узла.
Связь между узлами может быть достигнута с помощью модуля References (порт Drupal 7 модуля nodereference
, включенного в CCK для Drupal 6). Это позволяет добавлять ссылки на узлы при редактировании другого. Отношение может быть сконфигурировано так, чтобы разрешать ссылки только на узлы указанного типа. Эти виды ссылок не являются двунаправленными и могут (легко) перемещаться только из узла-источника, а не из узла-ссылки. В Drupal 6 реферер Node предоставил дополнительное поле для двусторонней навигации по отношению. К сожалению, он еще не был портирован на Drupal 7 .
Ссылки могут быть объявлены устаревшими в ближайшем будущем в пользу модуля Entity reference . Ссылка на сущность позволяет получить двунаправленные запросы через представления и правильную интеграцию с модулем E ntity API Последнее должно гарантировать, что отношения, определенные с модулем, полностью (проблемно) доступны для навигации и могут использоваться с модулями, использующими метаданные сущности ( Seach API и другие).
Другим решением, которое также использует систему Entity, является модуль Relation . Это обеспечивает полные двунаправленные отношения. Сами эти отношения сами по себе являются полями, что означает, что вы добавляете свойства в отношения (например, даты, когда шеф-повар начинал и заканчивал работать в ресторане).
Как только вы получите отношение, есть различные способы отобразить связанную информацию на странице узла. Я не известен по Relation, но если References ведет себя как версия Drupal 6, он только позволит основам отображать информацию из непосредственно связанных узлов. Одним из решений является реализация hook_node_view()
в пользовательском модуле для навигации по отношению, извлечения различных узлов, форматирования собранной информации с использованием пользовательского theme hook и добавления ее в $node->content
для рендеринга.
Поскольку ссылка на сущность интегрируется с представлением, вы должны иметь возможность построить представление для отображения узла, связанного с текущим отображаемым узлом (используя текущий узел в качестве контекстный аргумент ). Затем вы можете встроить представление программно в представление вашего узла (снова через hook_node_view()
) или использовать отображение блока.