3

作成時にノードに分類用語をタグ付けする必要があるモジュールを作成しています。これを行うために 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 を呼び出さないと、何も保存されません。やれば嫌われるし、やらなければ嫌われる。これを行う正しい方法に関するアイデアはありますか?

4

2 に答える 2

3

を使用$op="presave"して分類法を好きなように変更し、分類法モジュールに用語を保存させることができます。後で node_save を使用する必要はありません。実際、あなたが述べた理由により、nodeapiの実装ではノードの保存を避ける必要があります。

于 2010-07-20T06:20:27.067 に答える
0

a を使用しhook_form_alter()て、$form_state

于 2011-05-11T20:49:54.280 に答える