Хорошо, таким образом, это - моя форма рычага, изменяют функцию. Это заставляет все формы регистрации на сайте быть по записанному, который я не хочу, как я просто хочу это на этой странице.
function special_registration_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_register') {
drupal_set_title(t('Custom registration'));
$form['firstname'] = array('#type' => 'textfield',
'#title' => t('First Name: *'),
'#required' => TRUE,
'#size' => 45,
'#weight' => - 100,);
$form['lastname'] = array('#type' => 'textfield',
'#title' => t('Last Name: *'),
'#required' => TRUE,
'#size' => 45,
'#weight' => - 99,);
}
Я только имя и фамилия, которая будет получена и сохранена в другой таблице только на этой странице. На других страницах я просто хочу старую добрую сформированную форму. Я должен все еще изменить вес? Я знаю, что пропускаю что-то элементарное.
Вы также можете использовать модуль Profile в основном списке модулей. Это решит это без какого-либо программирования, уф.
Если вы хотите ограничить изменение формы определенной страницей, вы можете просто добавить проверку страницы к проверке идентификатора формы, например:
function special_registration_form_alter(&$form, $form_state, $form_id) {
// Alter the registration form, but only on 'user/register' pages
if ($form_id == 'user_register' && 'user' == arg(0) && 'register' == arg(1)) {
// snipped alteration code
}
}
Вам просто нужно проверить текущую страницу, используя либо arg , либо $ _GET ['q'].
например:
function special_registration_form_alter(&$form, $form_state, $form_id) {
if ($_GET['q'] !== 'whatever/path' ) { return false; }
..rest of code..
}
Реализуйте hook_user ()
; функция позволяет изменять форму, предоставляемую пользователям при регистрации на сайте.
hook_user ()
используется user.module и не зависит от модуля профиля.
Определение ловушки как hook_user ($ op, & $ edit, & $ account, $ category = NULL)
, параметр $ op
будет содержать значение ' register '
, когда пользователю предоставляется форма регистрации. В этом случае модуль возвращает поля формы, которые он хочет добавить в форму регистрации.
Если вам действительно не нужно создавать учетные записи пользователей, например, для простой регистрации на мероприятие. Если вместо этого вы собираете только имена, вы можете вместо этого использовать модуль веб-формы.