Drupal 7 - тема формы профиля пользователя - PullRequest
1 голос
/ 22 февраля 2012

Я пытаюсь создать тему профиля пользователя моего сайта на Drupal.Я использую hook_form_alter в файле template.php темы.

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

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 было заменено на имя темы.

ОТВЕТ:

Как я и предполагал, я посмотрел в массив $ form.

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

Увидел, что current_pass был в массиве учетных записей, и исправил код следующим образом, что прекрасно работает.

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

Надеюсь, это может помочь кому-то еще.

1 Ответ

2 голосов
/ 22 февраля 2012

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

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

...