Manipulate the core user settings on a user edit form

Very little things can cause big annoyances sometimes. Let’s take the default user Picture element, Locale and Signature settings — in Drupal 7 it's not possible to (re)order them easily and your user edit form can become a mess, especially if more than one problematic elements is used.

You want to add those to a field group, rearrange them  — no luck here, unless you have time to spare on hacking Drupal.

In Drupal 8, at the time of writing, the user picture is finally a full—fledged field. But others — still not.

So you have an option to hack the core with this patch, or manage the problem with little snippets in your module.

Below is the example for the user picture element, but it can be easily adapted to other problematic elements as well.

 * Implements hook_field_extra_fields().
function demo_field_extra_fields() {
  $extra = array();
  if (variable_get('user_pictures', 0)) {
    $extra['user']['user']['form'] = array(
      'picture' => array(
        'label' => t('User picture'),
        'description' => t('User module picture form element.'),
        'weight' => 5,

  return $extra;

Put the code somewhere in your module, clear cache and visit «Manage Fields» screen.

Second problem — exporting the new pseudo field in a feature. To get it done, export the field_bundle_settings_user__user variable.