Я пытаюсь добавить пользовательские поля в регистрационную форму пользователя. Мне нужно сохранить 2 из них в базу данных пользователя Drupal и 1 в мою отдельную базу данных.Drupal 7 пользовательская регистрация custom
Я использую hook_form_alter для добавления полей, а затем hook_form_submit для сохранения полей.
Как отправить поля имени/фамилии в таблицу пользователя drupal, а затем сохранить SSN в свой собственный? У меня есть функция для переключения между двумя базами данных, но я просто не уверен, как использовать hook_submit_form для сохранения некоторых в одной базе данных, а некоторые в другой?
function myModule_form_alter(&$form, &$form_state, $form_id){
if($form_id == 'user_registration_form'){
$form['f_name'] = array(
'#type' => 'textfield',
'#title' => t('First Name'),
'#required' => TRUE,
'#attributes' => array('class' => array('fname'))
);
$form['l_name'] = array(
'#type' => 'textfield',
'title' => t('Last Name'),
'#required' => TRUE,
'#attributes' => array('class' => array('lname'))
);
$form['ssn'] = array(
'#type' => 'textfield',
'#title' => t('Social Security Number')
'#maxlength' => 11,
'#required' => TRUE,
'#attributes' => array('class' => array('ssn'), 'placeholder' => '999-99-9999')
);
Будет ли это примерно так?
function myModule_form_submit($form, &$form_state){
//Array of information to save into drupal user's table
$edit = array(
'f_name' => $form_state['values']['f_name'],
'l_name' => $form_state['values']['l_name'],
'second_email' => $form_state['values']['second_email'],
);
user_save(drupal_anonymous_user(), $edit);
drupal_set_message(t('The form has been submitted.'));
}
Я не уверен, если я могу использовать функцию Друпала user_save() и передать ему эту новую информацию, чтобы сохранить или, если я должен сделать что-то в .install файл, чтобы добавить эти новые столбцы, а затем нацелить их в форме_submit?
использовать функции db_insert или db_query для вставки в новую базу данных. вы можете вызвать их после функции user_save в обработчике отправки –
@ViswanathPolaki ahhh, что делает его намного более простым. Я все еще могу вызвать функцию user_save(), как я делаю, чтобы сохранить дополнительные поля, которые я добавляю в таблицу пользователя drupal правильно? – Exziled
yes, user_save сохранит поля регистрации и остальные поля, которые вы можете сохранить вручную. –