ノードの「変更された」タイムスタンプを更新せずに、ノードの用語参照を更新する必要があります。アクションとして「エンティティ値の変更」とともに [〜#〜] vbo [〜#〜] を使用すると、用語参照を更新できますが、「変更された」タイムスタンプも更新されます。
カスタムVBOアクションをコーディングするにはどうすればよいですか?
まず、changed
タイムスタンプが更新される理由の説明。アクションは属性を宣言できます
'behavior' => array('changes_property')
hook_action_info
エントリ内。この属性により、アクションが呼び出された後、VBOは自動的にエンティティAPIの entity_save 関数を呼び出します。この関数は node_save を呼び出し、changed
タイムスタンプを更新します。
この動作を回避するには、カスタムモジュールに hook_action_info を実装して独自のカスタムアクションを作成し、 サンプルモジュール のaction_example
に従います。属性がhook_action_info
省略であることを確認してください
'behavior' => array('changes_property')
アクション関数は、データベースを直接操作するか、node_save
呼び出しをトリガーしない関数を使用していることを確認して、ノードまたはその他のデータを保存する必要があります。
infojunkie による答えは正しいですが、単に次のように設定するのではなく、属性を完全に削除した場合:
'動作' => array()
その後、デフォルトで以下に戻ります。
'振る舞い' => array( 'changes_property')
その後、元の問題に戻ります。今日はしばらくの間、これは私にとっての落とし穴だったので、将来誰かの問題を解決することを望んでいます。
(詳細については、drupal.orgの https://www.drupal.org/project/views_bulk_operations モジュールの22-25行のplugins/operation_types/action.class.phpを参照してください。)
使用しているようです:
'behavior' => array()
vBOコードが空の場合にデフォルトを追加するため、まだデフォルトに戻ります($ this-> operationInfo ['behavior']))...
このセットの動作を回避するには、次のような他の(構成済みの動作は可能です)ようにします。
'behavior' => array('ignore')