質問
他のDrupalモジュールが利用できるように、独自のフック(Drupal Coreが作成するものと同様)を作成するにはどうすればよいですか?
解決
実際にフックを作成しません。次のようなヘルパー関数を使用します module_invoke_all()
, module_invoke()
また drupal_alter()
予想される名前パターンに一致するすべての関数を呼び出すには。呼び出された関数は通常、で見つかります module_implements()
.
フックが機能するのが必要でない場合でも、ベストプラクティスはそれらを文書化することです MODULE.api.php
空に作成します スタブ hook_NAME
で関数 ドキュメントコメント.
他のヒント
使用してフックを作成することもできます hook_trigger_info 新しいフックを作成できます。モジュールでは、実装する必要があります。例として、ノードのアーカイブを作成し、古いノードを入れたいとします。また、アーカイブ操作が完了したときにフックをトリガーする必要があります。このようなものになるでしょう
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
フックを定義した後、モジュールはフックとアクションを使用して実装する責任があります module_invoke() また module_invoke_all() .
を有効にすることができます trigger
この新しいフックをノードタブの下に表示するモジュール。
所属していません drupal.stackexchange