2

ビューの.tpl.phpファイルにリージョンを埋め込む方法について誰かアイデアがありますか?

次のようなものを追加することで、ノード.tpl.phpで簡単に実行できますtheme_preproces_node()

$vars['promos'] = theme('blocks', 'promos');

全く問題なし。ただし、明らかにtheme_preprocess_view()関数がないため、同じスニペットをに追加しようとするとメモリエラーが発生しtheme_preprocess()ます。

致命的なエラー:42行目の/Users/cpharmston/Sites/Projects/Threespot/neh01/includes/database.mysqli.incで許可された104857600バイトのメモリサイズが使い果たされました(523800バイトを割り当てようとしました)

私は困惑しています。何か案は?

ありがとう!

4

1 に答える 1

2

「迅速で汚い」方法:theme('blocks', [region_name])呼び出しをviews.tpl.phpファイルに直接入れることができます。

前処理関数は、「ビジネス」ロジックと「表示」ロジックをより適切に分離することを目的としていますが、必須ではないため、カスタムコードを.tpl.phpファイルに任意の方法で配置できます。

「適切な」方法:ビューの前処理関数が1つだけあります。ビューモジュールのtheme.incファイルを見てください。ここには、ビューで使用される可能性のあるさまざまなテンプレートのさまざまな前処理関数があります(たとえば、「フォーマットされていない」と「テーブル」と「リスト」など)。新しい変数を挿入するビューテンプレートに関連するものを見つける必要があります。

于 2009-10-05T19:45:30.707 に答える