You are here

function janrain_capture_mapping_get_user_field_options in Janrain Registration 7.3

Same name and namespace in other branches
  1. 7.4 janrain_capture_mapping/janrain_capture_mapping.admin.inc \janrain_capture_mapping_get_user_field_options()
  2. 7 janrain_capture_mapping/janrain_capture_mapping.admin.inc \janrain_capture_mapping_get_user_field_options()
  3. 7.2 janrain_capture_mapping/janrain_capture_mapping.admin.inc \janrain_capture_mapping_get_user_field_options()

Construct an array of options for the user field dropdown.

See also

janrain_capture_settings_mapping()

1 call to janrain_capture_mapping_get_user_field_options()
janrain_capture_settings_mapping in janrain_capture_mapping/janrain_capture_mapping.admin.inc
Menu callback for the mapping configuration screen.

File

janrain_capture_mapping/janrain_capture_mapping.admin.inc, line 446
Mapping admin settings functions

Code

function janrain_capture_mapping_get_user_field_options() {
  $fields = array();

  // Add the fields defined by the User entity.
  foreach (field_info_instances('user', 'user') as $field_name => $instance) {

    // Don't allow any mapping to the uuid field as the base module maps the
    // uuid to this field automatically.
    if ($field_name == 'field_janrain_capture_uuid') {
      continue;
    }
    $fields['field'][$field_name] = $instance['label'];
  }

  // Add properties
  $wrapper = entity_metadata_wrapper('user');
  foreach ($wrapper
    ->getPropertyInfo() as $name => $info) {

    // Don't allow any mapping to the uid or email field.
    if (in_array($name, array(
      'uid',
      'mail',
    ))) {
      continue;
    }

    // Exclude properties that are arrays, e.g. "User roles".
    if (isset($info['type']) && strpos($info['type'], 'list') === 0) {
      continue;
    }

    // Fields have been dealt with above so exclude them here.
    if (!isset($info['field'])) {
      $fields['property'][$name] = $info['label'];
    }
  }
  return $fields;
}