Итак, RelatedContent.
Позволяет установить для объекта связанные объекты. Но при этом сами объекты не знают о том, что их привязали.
Вот например есть событие. К этому событию привязаны люди, которые имеют отношение к событию. Просматривая событие, я могу быстро перейти к человеку, который принимает участие в событии. Вопрос: а как просматривая человека увидеть список событий, в которых он принимал участие?
Как реализовать двухстороннюю связь?
Комментарии
Хукнуть просмотр профиля, вытащив в хуке запросом с join события, привязанные к этому человеку? Но это уже php+mysql, а как это сделать "по-зеленому", хз...
А может не RelatedContent, может есть какой-нибудь модуль для реализации двухсторонних отношений?
Есть модуль замечательный для CCK - Node Referrer. Посмотрите здесь
Ой, пока ставил эксперименты с CCK - Node Referrer - пропустил совет посмотреть CCK - Node Referrer
Node Referrer удобен и более дружелюбен в использовании для пользователя, но и он не решает проблему создания симметричных отношений.
Единственное, что приходит в голову - это, да marazmus, хак.
Для каждого из требующих связи объектов создаём Node Referrer и при обновлении объекта обновляем информацию в ссылающихся объектах.
С PHP дружу, с Drupal не очень - подскажите, где должен располагаться код хака?
Хакать надо node module, да?
Пожалуйста, не путайте термины
Хак - это вмешательство в код ядра, в частности в код node.module. Крайне не приветствуется, так как вылезет боком при обновлениях, как и в любой системе, где хачится ядро.
Хук (англ. hook) - это основной способ вмешательства в работу Друпала практически на любом этапе работы скрипта. Вкратце - Друпал просматривает код модулей на предмет наличия конструкции, к примеру, my_module_user, где my_module - имя вашего модуля, а _user - это хук Друпала. Найдя функцию с таким именем, Друпал "передает управление" при просмотре профиля юзера не своему модулю ядра, а вашему модулю (функции модуля) my_module_user. И там уже делайте что хотите, можете вообще не выводить ничего, можете набить туда 2 мегабайта пхп-кода - это уже ваше дело. Самое главное - нет изменений ядра, но вы можете вмешаться в работу Друпала в любом месте, используя систему хуков.
По хукам вообще - http://api.drupal.org/api/group/hooks/5
По профилям пользователей - http://api.drupal.org/api/function/hook_user/5
Больше помочь не могу, к сожалению, не столь образован в работе с профилями пользователей в Друпале, пока хватает стандартных возможностей системы.
Все сложнее, чем я думал
Очень не хочу писать свои модули...
P.S. В моем случае пользователь - это обычный нод.