Вы здесь

Как изменить порядок элементов формы для /user/register ?

1

делаю так

function mymodule_form_user_register_form_alter(&$form, &$form_state) {
  $form['account']['mail']['#weight'] = 1;
  $form['account']['pass']['#weight'] = 2;
}

и ничего не меняется, поле mail рендерится после поля pass.
установлены модули email_registration и user_registrationpassword, лазил по ним, но ничего такого не увидел.

Версия Drupal: 
7.x
Категория: 
Form API
Вопрос задан 30.09.2015 - 13:02

Попробовал у себя:
По умолчанию мейл выше паролей.
Ваш код у меня работает: мейл и пароль устанавливаются в зависимости от веса.

Может быть у вас какой-то модуль, у которого вес больше, чем у mymodule, меняет поля местами.
Попробуйте ваш код записать в template.php темы: mytheme_form_user_register_form_alter, т.к. у темы вес больше чем у модулей. Если сработает там, значит какой-то другой модуль вмешивается в очередность полей.

Комментарий оставлен 30.09.2015 - 13:56

Спасибо, Евгений, это я сам накосячил, внизу описал в другом комменте.

Комментарий оставлен 01.10.2015 - 01:09

Ответы

2

C установленными модулями email_registration и user_registrationpassword форма регистрации выглядит
Если

function MYMODULE_form_user_register_form_alter(&$form, &$form_state) {
  $form['account']['mail']['#weight'] = 2;
  $form['account']['pass']['#weight'] = 1;
}

Если

function MYMODULE_form_user_register_form_alter(&$form, &$form_state) {
  $form['account']['mail']['#weight'] = 1;
  $form['account']['pass']['#weight'] = 2;
}

ни email_registration, ни user_registrationpassword веса полей в форме регистрации не изменяют

Ответ дан 30.09.2015 - 14:06
Аватар пользователя drupby
drupby
456

Господа, мои извинения, я совсем загнался, надо спать больше. Я же сам переопределил шаблон для формы регистрации и вывел там поля

<?php print render($form['account']['pass']); ?>
<?php print render($form['account']['mail']); ?>

а потом 2 дня выставлял им вес и ругался. Спасибо drupby, ты натолкнул меня на ещё раз всё проверить.

Комментарий оставлен 01.10.2015 - 01:08