web-dev-qa-db-ja.com

ノードのワークフロー状態遷移履歴を取得するにはどうすればよいですか?

管理セクションで、特定のノードについて、以前にノードのワークフローの状態に変更を加えた開発者にQAがそのノードを割り当てるためのドロップダウンフィールドを追加する必要があります。私は現在ワークフローモジュール( https://www.drupal.org/project/workflow )を使用しています。このフィールドには、ノードのワークフロー状態を以前に変更したユーザーを入力する必要があります。だから、私はこれを行うことができるモジュールに取り組んでいます。私の質問は、特定の要素のワークフロー状態遷移履歴をプログラムでどのように取得するのですか?

ワークフローの変更を伴う特定のノードのすべてのリビジョンについて、次の情報が必要です。

  1. 変更後の状態または状態ID(sid)。
  2. 変更を行ったユーザーのuid。
  3. ワークフローの状態遷移が行われた順序。

Node_revision_listを試しましたが、ワークフローの状態を変更するだけのリビジョンは含まれていません。 (workflow_node_historyテーブルを参照していないため)。

次のクエリを実行することで、データベースから必要な情報を直接取得できますが、この機能がすでにDrupalのどこかにある場合は、データベースハッキングを実行しません。

SELECT sid, uid  FROM `workflow_node_history` WHERE `nid` = ? ORDER BY stamp asc

Drupalすでにこれを行っている関数はありますか?

2
TMorgan

ワークフローモジュールには、必要な関連情報を取得するために使用できる多くのAPI呼び出しがあります。

アクセスできるすべてのワークフロー関数はここにあります

workflow_get_workflow_node_history_by_nid 関数を特に探しているようです

ここでノードIDを指定すると、必要な情報を見つけることができるオブジェクトとして履歴結果が返されます。それをusersテーブルと結合して、関連するすべてのユーザー情報を取得します。

1
VanD