2010-06-03 56 views
2

我是一個新手的Drupal特定領域...的Drupal 6:正從節點引用類型

<?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']; ?> 

那麼怎麼能得到這個?非常感謝幫助!非常感謝!

+0

安裝devel模塊。轉到您正在處理的節點。單擊node_load選項卡。現在你可以看到所有領域的一棵樹。這會讓事情變得更容易。 – Keyo 2010-08-05 02:59:19

回答

1

您應該檢查/轉儲$node->field_location陣列的內容。我目前沒有測試安裝,所以我不能肯定地說,但我希望至少引用的節點id('nid')應該放在該數組的某處。有了這個,你可以做一個node_load($nid),它返回完整的節點對象,從而提供對字段的訪問。

(至於說,我不知道,但是場陣列可能已經包含了整個節點對象爲好,因爲需要顯式地加載它節省您的。)

0

$node->field_location[0]['view'];返回節點因爲它在內容類型定義的顯示字段部分中定義。這可能會有利於您的工作。您可以欺騙它:使用該節點的Teaser顯示並自定義節點Teaser顯示以適合您的需求。只是一個想法。

如果這不適合你,你將需要單獨加載節點。您可以使用$node->field_location[0]['nid'];得到節點ID,所以你最終的東西是這樣的:

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

我不知道這是如何執行?