どのモジュールがテーブルへの保存を実施しているか調べる方法

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
junko_m's picture

お世話になっております。

初歩的な質問ですみません。
Drupal7, DKAN Workflow, Workbench, Workbench Moderation を利用して承認機能を実装しようとしています。

WorkbenchモジュールにまだFixされていない問題がありそうな事はわかっているのですが、
暫定対処などできないものかと、調査する上で、困っていることがあり質問させていただきました。

編集データ保存時に、node_revisionテーブルに不要(と私が思っている)レコードが登録されてしまうので、
どのモジュールがそのレコードを保存しているかを調査したいと思ったのですが、
テーブル名で検索してヒットした箇所にログを仕込んでも、該当箇所が見つかりません。
hook_node_insert, hook_node_updateなどの箇所についても同様にしたのですが、見つかりませんでした。
怪しそうなmoduleのexecute実行箇所についても同様にしたのですが、見つかりませんでした。

そもそも、こういった場合、どのようにして調べるのが妥当なのでしょうか?
アドバイス頂けると助かります。よろしくお願いいたします。

Comments

D7のWorkbench

kazuko.murata's picture

D7のWorkbench Moderationモジュールによるリビジョンの不整合を調査をしたことがあります。

Workbench Moderation は、
hook_menu_alterでnodeの表示・編集処理を奪い取っているので、
そこから地道にコードを追って、あたりを付けました。

またDrupal.orgで似たようなissuuを探すのも有効で、
その時はissuuにあったパッチを当てることで暫定対処しました。

全然解決の目途が立つような返答ではないのですが・・・
よろしくお願いします。

アドバイスありがとうございます

junko_m's picture

ありがとうございます。

hook_menu_alterは完全に思考の外でした。
アクションのスタート側からたどる手がありますね。
保存がおかしいことから、保存近辺ばかりを確認していました。

アドバイスを参考にいろいろ調べたところ、
保存にはdrupal_write_recordが利用されているようでした。

問題の解決には至っておりませんが、新しい調査方法を得たことで、
前に進めそうです。

ありがとうございました。