2

sitename_modulename_user_loginblock($form)という名前の関数で、前処理関数からtemplate.phpへの値を取得するにはどうすればよいですか?

カスタムクエリを使用して前処理関数で値を作成したので、loginblock 関数自体でそれを行うことができましたが、そこでは $form しか利用できず、クエリを作成するには他の 3 つの変数が必要です。

loginblock 関数は、マークアップといくつかの変数である $output を返します。この関数とその戻り値のページへの表示の間に追加のステップはありませんか?

4

2 に答える 2

1

前処理関数からtemplate.phpに渡すには、$ vars []配列にデータを入力します。指定するキーは、テンプレート内の変数名であり、値は変数値であるため、次のようになります。

$vars['foo'] = "bar";

前処理関数で、値が「bar」のテンプレートに$fooが作成されます。

私はあなたがやろうとしていることについて少し混乱しています。理想的には、logingblockは、前処理で作成されたものではなく、ブロックになります。あなたはそのオプションを見たいかもしれません。

于 2009-10-28T11:55:14.840 に答える
0

ジェレミーが述べたように、あなたが何をしたいのかは本当に明確ではないので、質問を編集して明確にする必要があります.

user_login_block()私には、テーマの template.php でデフォルトの関数をカスタム バージョンでオーバーライドしたいように思えます。その場合、対応する *.tpl.php ファイルの変数のみを準備するため、前処理関数からそこに変数を渡すことはできません。

達成したい内容によっては、フォーム関数のオーバーライドに関するこの記事が役立つ場合があります。

ネーミングは重要です。関数がオーバーライドとして機能するには、名前を付ける必要がありますthemename_user_loginblock($form)

于 2009-10-28T22:44:12.217 に答える