ビューを使用してブロックを作成しましたが、ビュー自体から取得できない情報をブロックに追加したいと考えています。追加データを照会する小さな関数を作成する必要があります。
この関数を MYTHEME_preprocess_node に入れることを考えましたが、単純な $variables['test'] = 'test' を入れてから、ブロックのコンテンツを出力する .tpl ファイルの 1 つで print $test を実行すると、何も表示されません。
私は正しい軌道に乗っていますか?
ビューを使用してブロックを作成しましたが、ビュー自体から取得できない情報をブロックに追加したいと考えています。追加データを照会する小さな関数を作成する必要があります。
この関数を MYTHEME_preprocess_node に入れることを考えましたが、単純な $variables['test'] = 'test' を入れてから、ブロックのコンテンツを出力する .tpl ファイルの 1 つで print $test を実行すると、何も表示されません。
私は正しい軌道に乗っていますか?
Theme Info
ビューインターフェイスのオプションを使用して、ビューによってプルされたテンプレートを識別することもできます。これらのテンプレートのプリプロセス関数を記述できるかどうかはわかりませんが、テーマ情報で提供されている名前スキームに従って、テーマディレクトリにビュー固有のオーバーライドテンプレートを作成できます。
そのテンプレートにはSQLクエリを含めることができます。
問題は、 preprocess_ 関数が特定のテンプレートに関連付けられていることです。そのため、前処理ページは page.tpl.php で使用可能な変数を生成し、preprocess_node は node.tpl.php に対してそれを行います。したがって、すべてのテンプレートに対して実行する必要がある MYTHEME_preprocess を使用するか、MYTHEME_preprocess_templatename を使用できます。命名スキームとテンプレート命名システムがどのようになっているのか正確にはわかりません。ただし、 devel モジュールには、表示しているページでどの前処理関数が実行されているかを確認できるオプションがあります。これは、前処理関数を機能させるのに問題がある場合に、何を呼び出すかを理解するのに役立つはずです。