Drupal 6: получение определенных полей из ссылочных типов узлов - PullRequest
2 голосов
/ 03 июня 2010

Я новичок друпал ...

<?php print $node->field_date[0]['view']; ?>

Я могу получить значение пользовательских полей CCK и отобразить его в файлах tpl.php, как указано выше ... это нормально.

мой вопрос: как я могу получить входные поля справочных полей узла? например, у меня есть тип содержимого события, и я определил ссылку на узел для местоположения (заголовок, адрес, img и т. д.). Когда я пишу код ниже, он отображает все содержимое местоположения;

<?php print $node->field_location[0]['view']; ?>

но мне нужно получить только адресное поле из этого типа содержимого местоположения. что-то вроде ниже было бы здорово: D, но не работает;

<?php print $node->field_location[0]['field_address']['view']; ?>

так как это можно получить? ценить помогает так много! Большое спасибо!

Ответы [ 2 ]

1 голос
/ 03 июня 2010

Вы должны проверить / вывести содержимое массива $node->field_location. У меня сейчас нет тестовой установки, поэтому я не могу сказать наверняка, но я ожидаю, что по крайней мере где-то в указанном массиве должны быть ссылки на узлы id ('nid'). С этим вы можете сделать node_load($nid), который возвращает полный объект узла, тем самым предоставляя доступ к полям.

(Как я уже сказал, я не уверен, но массив полей может уже содержит и весь объект узла, избавляя вас от необходимости загружать его явно.)

0 голосов
/ 28 июня 2010

$node->field_location[0]['view']; возвращает узел, как он был определен в разделе Поля отображения определения типа содержимого. Это может работать в ваших интересах. Вы можете обмануть его: используйте дисплей Teaser для этого узла и настройте отображение Teaser для узла в соответствии со своими потребностями. Просто мысль.

Если это не работает для вас, вам нужно будет загрузить узел отдельно. Вы можете использовать $node->field_location[0]['nid'];, чтобы получить идентификатор узла, так что в итоге вы получите что-то вроде этого:

node_load($node->field_location[0]['nid'])->field_address[0]['view']

Я не уверен, как это работает ...

...