0

私は一日中検索していますが、答えを見つけることができません-Drupal 6で正常に機能し、Drupal7でも正常に機能するはずです。

フォームのselect要素にカスタムテーマ関数を指定したい

$form['field_name'] = array(
'#type' => 'select',
'#title' => t('Title Here'),
'#theme' => 'custom_select',
'#options' => $values,
);

私は新しいカスタムテーマ関数を宣言するためのテーマフック権を持っていますが、私の問題は、上記のようにそのカスタムテーマ関数を使用すると、次のような空の$variables配列を取得することです。

Array([element] => null)

誰かが私が間違っているかもしれないことを見ることができますか?キャッシュをクリアし、私が考えることができるすべてのことを行いました-Drupalが要素データをテーマ関数に渡さない理由はありますか?ありがとう

4

1 に答える 1

1

他の誰かが問題を抱えている場合に備えて、最終的にこれを理解しました-変数ではなくhook_themeでrender要素を設定するようにしてください!

function hook_theme(){

return array(
'select_currency' => array(
'variables' => array('element' => null),
'file' => 'module_name.theme.inc',
));

}

function hook_theme(){

return array(
'select_currency' => array(
'render element' => 'element',
'file' => 'module_name.theme.inc',
));

}

レンダリング要素を思い出すまで、髪を引っ張っていました。

于 2013-02-01T10:44:00.123 に答える