2012-02-22 75 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已被主題名稱取代。

答:

至於建議我看着$形式排列。

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

看到current_pass在帳戶數組中,並將代碼修改爲以下,它工作正常。

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

希望這可以幫助別人。

+0

current_pass是一個現有的配置文件字段?嘗試調試並轉儲'$ form ['current_pass']'(在修改之前),看看裏面有什麼 – soju 2012-02-22 16:04:57

回答

2

我只是想說同樣的事情 - 做一個$形式的轉儲,並確保該字段實際存在 - 如果它確實存在,它仍然不起作用,那麼可能會有另一個掛鉤在你的和改變之後被調用你的改變。

ps:我仍在使用D6,但是你確定把你的form_alter函數放在正確的地方嗎?你的說THEME_NAME_form_alter - 我知道在D6中你必須把它們放在模塊層而不是主題層(除非在D7中這已經改變了) - 這可能是你的問題嗎?

+0

謝謝。我已將答案添加到未來用戶的問題中。 – SpaceBeers 2012-02-22 16:24:26

+0

很高興有幫助!所以我把它放在D7中,現在已經改變了:D等不及要做一個項目!任何更多的問題都會大聲呼喊! – coder4show 2012-02-22 17:38:01