2

ビューを作成しました(と呼びましょうmy_view)。

テーマ: ビューの情報セクションで、提案されたテンプレート名の 1 つviews-view--my-view--default.tpl.php(またはそれに近い名前) をメモし、その名前で独自のテンプレート ファイルを作成しました。

これはすべて正常に機能し、テーマ レジストリにアクセスすると、テンプレートの名前 ( ) を持つフックがあることがわかりますviews-view--my-view--default。ただし、このフックには「モジュール」ではなく「エンジン」のタイプ フィールドがあります。これは、ビューが独自のテーマを解決する方法を表示することだと思いますか?

このテーマフック (および同じ方法で作成された他のフック) を変更するために実装したいのですhook_registry_alterが、これらのフックのリストを取得する方法がわかりません。

array_keys( views_theme()) を使用してすべてのビュー フックを取得しようとしましたが、このリストには、テンプレート ファイルをオーバーライドして作成されたフックが含まれていません。views_views_field などのデフォルトのフックのみが含まれています

この方法でオーバーライドされたビュー テーマ フックのリストを戻す方法はありますか?

4

1 に答える 1

1

あなたの最後のコメントは、あなたが最初のアプローチを追求することにもう興味がないことを示しているようで、とにかく600文字では十分ではないので、ここで答えます.

あなたが望むものを達成するための別のアプローチは、親テーマからのサブテーマの「継承」を使用することです。つまり、ユーザー テーマを管理テーマのサブテーマとして定義できます。

このように、テーマ エンジンはテンプレートを検索します。ユーザーがユーザー テーマを介してサイトを表示している場合は、最初にユーザー テーマ フォルダー、次に管理テーマ フォルダー、次にモジュール ディレクトリを検索します。

これは、たとえば、スターター キットでテーマを作成できるようにするためにzenで使用されるのと同じメカニズムです。

お役に立てれば!

于 2009-11-26T23:13:03.150 に答える