You are here

function redhen_contact_form_user_register_form_alter in RedHen CRM 7

Same name and namespace in other branches
  1. 8 modules/redhen_contact/redhen_contact.module \redhen_contact_form_user_register_form_alter()

Implements hook_form_FORM_ID_alter().

File

modules/redhen_contact/redhen_contact.module, line 1192
Module file for RedHen contacts.

Code

function redhen_contact_form_user_register_form_alter(&$form, &$form_state) {

  // Check if enabled.
  if (variable_get(REDHEN_CONTACT_REG, FALSE)) {

    // Get menu item to check for the overriden contact type parameter, but only
    // when a user is registering from user/register.
    $menu_item = menu_get_item();
    if ($menu_item['original_map'][0] == 'user' && $menu_item['original_map'][1] == 'register' && isset($menu_item['original_map'][2])) {
      $contact_type = $menu_item['original_map'][2];
    }
    else {

      // If not parameter, use the default Contact type.
      $contact_type = variable_get(REDHEN_CONTACT_REG_TYPE, FALSE);
    }

    // If a valid contact type was found.
    if (array_key_exists($contact_type, redhen_contact_get_types())) {
      $contact_object = redhen_contact_create(array(
        'type' => $contact_type,
      ));
      _redhen_contact_user_embed_contact_form($form, $form_state, $contact_object);

      // Add a submit handler for handling the contact form data.
      $form['#submit'][] = 'redhen_contact_user_registration_submit';

      // Hide the Contact email field, we will use the user mail field.
      $form['redhen_contact']['form']['redhen_contact_email']['#access'] = FALSE;
      $form['#validate'][] = 'redhen_contact_user_registration_validate';
    }
    else {
      drupal_set_message(t('Invalid RedHen contact type parameter.'));
    }
  }
}