2012-08-06 42 views
0

案例如下:例如,我有一個自定義的內容類型,其中存在「data_field」字段。我想在側邊欄上有一個能正確處理和顯示這個「data_field」字段數據的塊。我如何通過Drupal API訪問?Drupal7中與內容(上下文)相關的塊

P.S.我明白,這個問題可以通過某種方式在視圖中解決,它具有內容特定顯示的能力,但是我對通過API實現它的方式感興趣。

回答

1

要呈現的字段使用默認的Drupal設置內容類型:

$n = node_load($nid_of_content); 
$n = node_view($n); 
print render($n['field_somevalue']); 

您可以指定一個節點顯示格式爲好,如

$n = node_view($n, 'teaser'); 

如果你想操縱字段內容以不同的方式使用原始字段值:

$n = node_load($nid_of_content); 
$value_you_want = $n->field_data_field_somevalue['und'][0]['value']; 

這假定您沒有使用任何語言/翻譯功能 - 「und」代表「未定義」,並且表示沒有明確設置節點的語言。

如果該字段可以包含多個值,通過迭代[ 'UND'] [0] [ '值']至[ 'UND'] [X] [ '值']

上面的代碼顯示一個大多數字段類型的原始值。在開發過程中使用print_r($ n-> field_somevalue)來找出可用的值;它取決於字段類型。例如,文件類型爲您提供'uri'(等等)而不是'value',文本字段也具有應用了輸入格式過濾的'safe_value',長文本字段將具有'summary'和'safe_summary',& c。

+0

你是最棒的!=)非常感謝! – DimG 2012-08-09 09:01:35