2012-02-22 21 views
1

私は現時点で私のDrupalサイトのユーザープロフィールフォームをテーマにしようとしています。テーマのtemplate.phpファイルでhook_form_alterを使用しています。Drupal 7 - テーマユーザープロファイルのフォーム

コードは他のフォームの編集に使用したコードと同じですが、何らかの理由でそれが機能していないことがわかりません。今コメントアウト

function THEME_NAME_form_alter(&$form, &$form_state, $form_id) { 
    if ($form_id == 'user_profile_form') {  
     $form['current_pass']['#prefix'] = '<div class="loginFormBlock">'; 
     $form['current_pass']['#suffix'] = '</div>'; 
     $form['current_pass']['#size'] = '500'; 
     //$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/Login.png'); 
    } 
} 

はそれがコメントし、未だがcurrent_passビットは何もしないと、ボタン部分が機能し提出します。 Current_passは私がテーマにしようとしているフィールドの名前です。 THEME_NAMEはテーマの名前に置き換えられました。

ANSWER:

としては、私は$のフォームの配列に見えたが示唆されました。

echo '<pre>'; 
print_r($form); 
echo '</pre>'; 

current_passがアカウント配列にあり、次のコードを修正して正常に動作しています。

$form['account']['current_pass']['#size'] = '500'; 

これが他の人に役立つことを望みます。

+0

current_passは既存のプロファイルフィールドですか? '$ form ['current_pass']'をデバッグしてダンプしてみてください(変更前) – soju

答えて

2

私はちょうど同じことを言うつもりでした - $フォームのダンプを行い、フィールドが実際に存在することを確認します - そうであればそれでも動作しない場合、あなたの後に呼び出され、あなたの変更。

ps:まだD6を使用していますが、正しい場所にform_alter関数を配置してもよろしいですか?あなたはTHEME_NAME_form_alterと言っています - D6ではテーマレイヤではなくモジュールレイヤに配置する必要があります(これがD7で変更されていない場合は???) - これがあなたの問題だろうか?

+0

ありがとうございました。私は将来のユーザーのための質問に答えを追加しました。 – SpaceBeers

+0

助けてくれると嬉しいです!だから私はD7でこれを取る。これは今変更されている:Dはそこでプロジェクトを行うのを待つことができない!それ以上の質問は叫び声を与える! – coder4show