web-dev-qa-db-ja.com

このフックは何をすることになっているのですか?

ビューの1つのクエリを変更する必要があります。私はhook_views_query_alter()を見つけましたが、私がそれをどうするかを理解することはできません。 [〜#〜] api [〜#〜] によれば、

このフックはMODULENAME.views.incに配置する必要があり、自動ロードされます。 MODULENAME.views.incは、MODULENAME_views_api()によって返された「パス」キーで指定されたディレクトリ、または「パス」が指定されていない場合は.moduleファイルと同じディレクトリにある必要があります。

わかりましたので、フック付きの関数をviews.incファイルに置くことを知っています。しかし、実際の.moduleファイルには何を入れる必要がありますか?このフックを使用して私を正しい方向に向ける完全なモジュールコードの例を見つけることができないようです。モジュールコードにMODULENAME_views_api()のみが含まれていますか?

4
EmmyS

モジュールが他のフックを実装する必要がない場合は、うん、hook_views_api()が.moduleファイルに必要なすべてです。

hook_views_api()に正しいパスを指定する限り、ビューはどこを見るかを認識し、必要なときにファイルを動的に含めます。

通常、動的コードレジストリでピックアップするには、モジュールの.infoファイルに_files[] = mymodule.FILENAME.inc_を配置する必要がありますが、その外観からは、ビューの場合はそうではありません。

このためのコード例を探している場合は、 Administration Views モジュールを見てください。 .moduleファイルにはhook_views_api()のみが含まれている(そして動作する)ため、正しいことを行っていると確信できます。

6
Clive