Я думаю, вам нужен модуль References (предоставляет справочные поля для узлов и пользователей для Drupal 7)
Извинения Я не прочитал правильно, вы также хотите соответствующий узел эталонный модуль , который делает ссылку на узел двунаправленной (версии модулей D7 приведены в другом ответе).
РЕДАКТИРОВАТЬ для адресации нового кода:
Я предполагаю, что вы довольно новичок в Drupal из ваших недавних вопросов, но в любом случае вы нашли (на мой взгляд) лучший способ сделать это.Если вам удобно писать PHP-код (а это не так для многих пользователей Drupal), то захват данных напрямую всегда будет более эффективен, чем использование дополнительного модуля, который может иметь много накладных расходов.
Нескольковторостепенные моменты:
- Я бы посоветовал переместить ваш код из файла шаблона в пользовательский модуль вместо функции
hook_node_load
, чтобы эти данные были доступны в течение всего срока службы узлов (чтокак вы можете использовать его в разных контекстах).Однако если вам не нужно повторно использовать эти данные где-либо, кроме файла шаблона, тогда все будет в порядке. - Если вы собираетесь перейти непосредственно к таблицам полей, вам, вероятно, следует использовать
field_revision_field_x
таблицы вместо field_data_field_x
, чтобы вы могли воспользоваться преимуществами системы редакций и всегда получать самые последние данные. - Поскольку поля могут быть присоединены к нескольким типам сущностей, вам следует убедиться, что вы получаете правильные данные полейдля правильного объекта (вы можете не планировать прикреплять это поле к каким-либо другим узлам / объектам, но в этом случае рекомендуется).
Это слегка отредактированная версия вашего кода с учетомправильные типы полей (не проверено, но должно работать):
function digital_preprocess_node(&$vars) {
$node = $vars['node'];
if ($node->type == 'project' ) {
$bugs_requests_nids = db_select('field_revision_field_project', 'p')
->fields('p', array('entity_id'))
->condition('entity_type', 'node')
->condition('bundle', 'project')
->condition('entity_id', $node->nid)
->condition('revision_id', $node->vid)
->execute()
->fetchCol();
$vars['tasks'] = node_load_multiple($bugs_requests_nids);
}
}