2010-10-17 49 views
2

可以說我有一個叫做foo的cck字段。這是一個帶有php輸入的文本字段。假設在foo字段中的php代碼在計算時導致1,256的值。我需要叫做bar的cck字段來獲取/獲取/獲得cck字段foo的VALUE(1,256)。我怎麼能有一個cck字段獲得另一個cck字段的計算值?


Node XYZ 
Foo:*some php code*  ===>results in value of 1,256 
Bar:1,256 

如果我只是有CCK領域的Foo中的一個節點,它吐出了正確的值,(1256),但該領域是我們的觀點排序的方式;和意見不能排序的PHP領域。

我試圖讓computed_field.module獲取它的值,但它會吐出php代碼,而不是值。

有什麼想法嗎?

+0

你的意思是「富」獲得該提交價值,還是提交之前? – tpow 2010-10-17 14:45:17

+0

提交節點?如果這就是你的意思,然後提交。我需要Bar僅具有1256(整數或文本)的值。我基本上需要該字段將整數1256存儲在數據庫中。請參閱Foo字段,它是計算出的Alexa流量排名數字。它是在計算時返回數字的php代碼。該數字可以保留該數據庫中的計算值,直到重新計算它爲止。 computed_field在重新保存節點時重新計算該值。 (如果這給你更多的想法)。 – picxelplay 2010-10-17 14:58:41

+0

如果field bar以某種方式能夠擦除/提取值,或者只是讀取輸出的值而不是代碼,那麼我也可以。 – picxelplay 2010-10-17 14:59:21

回答

2

您需要掛鉤節點提交表單,並添加一個提交處理程序

function moduleNameHere_form_nodeNameHere_node_form_alter(&$form, $form_state) { 
      //Add handler 
      $form['#submit'][] = 'moduleNameHere_submit_function'; 
} 

然後創建將調用的處理程序提交

function moduleNameHere_submit_function($form, &$form_state) { 
    //Assign foo's value to variable 
    $myValue = $form_state['values']['foo']; 

    //Set bar to foo's variable 
    $form_state['values']['bar'] = $myValue; 

} 
+0

當我將你的代碼集成到檢索行列的模塊中時,它可以很好地工作。從邏輯上講,這非常合理。非常感謝您的幫助@cinqoTimo – picxelplay 2010-10-17 19:06:29

+0

@picxelplay - 沒問題。歡迎來到Stackoverflow .. – tpow 2010-10-17 23:05:52

+0

首先看,它工作。我在一個視圖中測試了3個節點。它正確排序。我正在通過欄杆對它進行排序。我第一次上升,然後下降;一切正常。然後當我開始添加更多的節點時,結果並未排序。有任何想法嗎? – picxelplay 2010-10-18 22:21:02