2010-07-19 37 views
3

我正在創建一個模塊,它需要在創建時用分類術語標記節點。我已經實現hook_nodeapi()來做到這一點,並正嘗試添加的項在那裏,像這樣:如何以編程方式將分類術語添加到hook_nodeapi()中的節點?

function hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { 
    switch ($op) { 
    case 'insert': 
     $node->taxonomy = array(1 => taxonomy_get_term(1)); 
     node_save($node); 
    break; 
    } 
} 

當我打電話node_save(),代碼只是去到一個循環,因爲node_save調用hook_nodeapi( )。當我不調用node_save時,不會保存任何內容。如果我這樣做,我會摔倒,如果我不這樣,我會摔倒。任何想法在正確的方式做什麼?

回答

3

您可以使用$op="presave"以您想要的方式更改分類,然後讓分類模塊爲您保存條款。之後不需要使用node_save。事實上,節點保存應該避免在nodeapi實現中出於您說明的原因。

0

使用hook_form_alter()將其添加到$form_state

+0

這將需要調用node_save()或不? – itsbruce 2012-11-22 12:20:22

相關問題