2012-02-22 4 views
1

Я сейчас пытаюсь создать тему моего профиля пользователя Drupal. Я использую hook_form_alter в файле template.php темы.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

ответ

2

Я просто собирался сказать то же самое - сделайте дамп формы $ и убедитесь, что поле действительно существует - если оно есть, и оно все еще не работает, тогда может появиться другой крюк, который вызывается после вас и меняет ваши изменения.

ps: Я все еще использую D6, но вы уверены, что положили функцию form_alter в нужное место? ваш говорит THEME_NAME_form_alter - я знаю, что в D6 вы должны помещать их в слой модуля, а не в слой темы (если это не изменилось в D7 ???) - может это быть вашей проблемой?

+0

Спасибо. Я добавил ответ на вопрос для будущих пользователей. – SpaceBeers

+0

рад помочь! поэтому я беру его в D7, теперь это изменилось: D не может ждать, чтобы сделать в нем проект! больше вопросов дает крик! – coder4show

Смежные вопросы