You are here

function multiple_registration_form_field_ui_field_edit_form_alter in Multiple Registration 7

Implements hook_form_FORM_ID_alter().

File

./multiple_registration.module, line 395
Add ability to create several registration pages.

Code

function multiple_registration_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
  if (!isset($form['#instance'])) {
    return;
  }
  $instance = $form['#instance'];
  if ($instance['entity_type'] == 'user' && !$form['#field']['locked']) {
    $reg_pages = _multiple_registration_get_registration_pages();
    if ($reg_pages) {
      $roles = user_roles();
      $options[MULTIPLE_REGISTRATION_GENERAL_REGISTRATION_ID] = t('General registered users');
      foreach ($reg_pages as $rid => $page) {
        $options[$rid] = t('Users with !role role', array(
          '!role' => '<strong>' . $roles[$rid] . '</strong>',
        ));
      }
      $descr = t('Specify which of options are actual for this field. If nothing is selected, field is available for all variants.');
      if (isset($instance['settings']['user_additional_register_form'])) {
        $def_val = $instance['settings']['user_additional_register_form'];
      }
      else {
        $def_val = array();
      }
      $form['instance']['settings']['user_additional_register_form'] = array(
        '#type' => 'checkboxes',
        '#title' => t('This field is needed for:'),
        '#description' => $descr,
        '#default_value' => $def_val,
        // Show 2nd after required field.
        '#weight' => $form['instance']['settings']['user_register_form']['#weight'] + 0.1,
        '#options' => $options,
      );

      // Multiple registration 'required' options description and checks.
      if (empty($form['instance']['required']['#default_value'])) {
        $descr = t('<strong>Note: works only if "Required field" is unchecked!</strong>');
        if (isset($instance['settings']['user_additional_register_form_required'])) {
          $def_val = $instance['settings']['user_additional_register_form_required'];
        }
        else {
          $def_val = array();
        }

        // Multiple registration 'required' options.
        $form['instance']['settings']['user_additional_register_form_required'] = array(
          '#type' => 'checkboxes',
          '#title' => t('This field is required for:'),
          '#description' => $descr,
          '#default_value' => $def_val,
          '#weight' => $form['instance']['settings']['user_additional_register_form']['#weight'] + 0.1,
          '#options' => $options,
        );
      }
    }
  }
}