С регистрацией в Drupal знакомы, пожалуй, все его пользователи - все через нее когда-то проходили. Со стороны разработчика, как правило, тоже все знакомо - есть форма с логином, паролем, и кнопка "зарегистрироваться", после нажатия которой форма обрабатывается.
Но все меняется, если у клиента возникла задача собирать дополнительные данные о пользователе на этапе регистрации. Например, может потребоваться знать, откуда родом наш посетитель, сколько ему лет или где он работает. Плюсы и минусы такого подхода к регистрации с точки User Experience можно обсуждать отдельно, мы же в данной статье рассмотрим техническую часть с точки зрения программиста.
Итак, нам нужно собирать дополнительные данные - значит, в дополнение к полям логина и пароля, в форме регистрации потребуются другие, и наша форма регистрации разрастется до неприличных размеров, и с большой долей вероятности, пользователь испугается огромного количества требуемых данных и уйдет, так и не нажав заветную кнопку. В области дизайна пользовательских интерфейсов давно придуман способ решения этой проблемы - многошаговая форма (multistep form).
В такой форме пользователь вводит данные не все сразу, а шаг за шагом: таким образом мы не только на каждом шаге показываем разумное количество полей, но и избегаем лишних вопросов, в зависимости от уже имеющихся ответов на предыдущем шаге. Кроме того, пользователь может видеть прогресс заполнения в виде индикатора шагов, что тоже важно для пользователя ("Когда же это закончится ?", "Сколько мне осталось еще заполнять ?").
Варианты решения »