=== modified file 'modules/field_ui/field_ui.admin.inc' --- modules/field_ui/field_ui.admin.inc 2009-08-29 08:00:03 +0000 +++ modules/field_ui/field_ui.admin.inc 2009-09-02 06:15:21 +0000 @@ -1007,6 +1007,7 @@ $field = field_info_field($instance['field_name']); $form['#field'] = $field; + $form['#instance'] = $instance; if (!empty($field['locked'])) { $form['locked'] = array( === modified file 'modules/user/user.module' --- modules/user/user.module 2009-08-31 18:00:03 +0000 +++ modules/user/user.module 2009-09-02 11:49:28 +0000 @@ -3065,6 +3065,17 @@ if (count(element_children($form)) == 1) { $form['account']['#type'] = 'markup'; } + + // Add user fields to the registration form. + field_attach_form('user', $null, $form, $form_state); + if (isset($form['#fields']) && is_array($form['#fields'])) { + // Don't display fields that aren't set to show on the registration pages. + foreach ($form['#fields'] as $field) { + if (!$field['instance']['settings']['user_register']) { + $form[$field['field']['field_name']]['#access'] = FALSE; + } + } + } $form['submit'] = array('#type' => 'submit', '#value' => t('Create new account'), '#weight' => 30); $form['#validate'][] = 'user_register_validate'; @@ -3130,3 +3141,27 @@ ->execute(); } } + +/** + * Implementation of hook_field_info_alter(). + */ +function user_field_info_alter(&$info) { + foreach ($info as $field_type_name => $field_type) { + $info[$field_type_name]['instance_settings']['user_register'] = FALSE; + } +} + +/** + * Add a checkbox to the field settings form to add the user + */ +function user_form_field_ui_field_edit_form_alter(&$form, &$form_state) { + $instance= $form['#instance']; + + if ($instance['bundle'] == 'user') { + $form['instance']['settings']['user_register'] = array( + '#type' => 'checkbox', + '#title' => t('Display this field on the registration form.'), + '#default_value' => $instance['settings']['user_register'], + ); + } +}