2

drupal はどのように独自のフックを作成しますか。同様に、自分用にカスタマイズされたフックが必要です。どうすればいいですか?

4

2 に答える 2

2

module_invoke_allを探している可能性があります

開始するのに役立ついくつかのリンク:

于 2012-05-13T08:09:09.393 に答える
0

参照によってパラメーターを渡すフックがあり、drupal_alter を使用できない場合 (たとえば、複数の引数を渡す presave フック)、module_implements を使用できます。

このようにして、モジュールはそれを modulename_presave_alter ではなく modulename_foo_presave として実装できます。ライフサイクルの複数の時点でモジュールに何かを変更させたい場合に適しています。

drupal コア チェックアウトの例については、node_validate (drupal 7) のコードを確認してください。

foreach (module_implements('node_validate') as $module) {
  $function = $module . '_node_validate';
  $function($node, $form, $form_state);
}

http://api.drupal.org/api/drupal/modules%21node%21node.module/function/node_validate/7から

この方法で実装できるフックを作成する場合、Drupal 6 でも同じアプローチが機能します。

于 2012-05-14T17:25:50.490 に答える