function registration_form_submit in Entity Registration 7
Same name and namespace in other branches
- 8.2 includes/registration.forms.inc \registration_form_submit()
- 8 includes/registration.forms.inc \registration_form_submit()
- 7.2 includes/registration.forms.inc \registration_form_submit()
Submit callback for registration_form().
File
- includes/
registration.forms.inc, line 271 - Form definitions and callbacks for Registration.
Code
function registration_form_submit($form, &$form_state) {
$registration = $form_state['registration'];
// Set the registration's author uid:
if (!isset($registration->registration_id)) {
$registration->author_uid = $GLOBALS['user']->uid;
}
$registration->count = $form_state['values']['count'];
if (!empty($form_state['values']['state'])) {
$registration->state = $form_state['values']['state'];
}
switch ($form_state['values']['who_is_registering']) {
case REGISTRATION_REGISTRANT_TYPE_ANON:
$registration->user_uid = NULL;
$registration->anon_mail = trim($form_state['values']['anon_mail']);
break;
case REGISTRATION_REGISTRANT_TYPE_ME:
global $user;
$registration->user_uid = $user->uid;
$registration->anon_mail = '';
break;
case REGISTRATION_REGISTRANT_TYPE_USER:
if ($reg_user = user_load_by_name($form_state['values']['user'])) {
$registration->user_uid = $reg_user->uid;
$registration->anon_mail = '';
}
break;
}
// Notify field widgets.
field_attach_submit('registration', $registration, $form, $form_state);
// Save the registration and redirect.
if (registration_save($registration)) {
$reg_config = registration_entity_settings($registration->entity_type, $registration->entity_id);
if (!empty($reg_config['settings']['confirmation']) && strlen($reg_config['settings']['confirmation'])) {
drupal_set_message(t($reg_config['settings']['confirmation']));
}
$wrapper = entity_metadata_wrapper('registration', $registration);
$host = $wrapper->entity
->value();
// Set redirect to configured value, if there is one.
if (!empty($reg_config['settings']['confirmation_redirect']) && strlen($reg_config['settings']['confirmation_redirect'])) {
$form_state['redirect'] = $reg_config['settings']['confirmation_redirect'];
}
else {
// Redirect to registration:
if (entity_access('view', 'registration', $registration)) {
$uri = entity_uri('registration', $registration);
$form_state['redirect'] = $uri['path'];
}
else {
if (entity_access('view', $registration->entity_type, $host)) {
$uri = entity_uri($registration->entity_type, $host);
$form_state['redirect'] = $uri['path'];
}
}
}
// Make sure to Start a Session and save the registration info so we
// can check it for anonymous user access.
drupal_session_start();
$_SESSION['registration_ids'][$registration
->identifier()] = $wrapper->anon_access_hash
->value();
}
else {
drupal_set_message(t('There was a problem submitting your registration.'));
}
}