2012-10-25 65 views
0

我有一個cck字段,需要在我的hook_form_alter中訪問,以便我可以使用動態值設置某個字段的默認值。如何從hook_form_alter訪問節點/內容變量

顯然,node_load不會爲我完成這項工作。

if ($form_id == 'some_form_id') { 
    $node = node_load($item->nid); 
    $somevariable = $node->field_cck_foo[0]['value'] * 2; 
    $form ['xxx']['xxx']['#default_value'] = $somevariable; 
} 

我如何能夠訪問節點項目,以便我可以在hook_form_alter中使用它?請指教。謝謝。

+0

這是爲Drupal 6 Drupal的還是7?你已經將它標記爲兩個都不可能 – Clive

+0

Drupal 6.我認爲hook_form_alter在D7上仍然可以工作。對不起。標籤現在相應編輯。 – xchampionx

回答

1

hook_form_alter()是可用於改變任何形式的通用掛鉤。爲了幫助您找到解決方案,我們需要更多關於您所處環境的信息(例如,您嘗試更改哪種形式?)

我的猜測是您正在改變node_form()。如果您查看錶單構建器函數,您會看到該節點在$ form_state ['node']中可用,供您使用。

0

對於D7:

$arg = arg(); 
if($arg[0] == 'node' && !empty($arg[1])) { 
    $node = node_load(arg(1)); 
}