You are here

function og_ui_add_users in Organic groups 7.2

Same name and namespace in other branches
  1. 7 og_ui/og_ui.admin.inc \og_ui_add_users()

Add users to group form.

1 string reference to 'og_ui_add_users'
og_ui_menu in og_ui/og_ui.module
Implements hook_menu().

File

og_ui/og_ui.admin.inc, line 131
Admin settings for Organic groups module.

Code

function og_ui_add_users($form, &$form_state, $group_type, $gid) {
  og_set_breadcrumb($group_type, $gid, array(
    l(t('Group'), "{$group_type}/{$gid}/group"),
  ));
  $group = entity_load_single($group_type, $gid);
  $label = entity_label($group_type, $group);
  list(, , $bundle) = entity_extract_ids($group_type, $group);
  $form['group_type'] = array(
    '#type' => 'value',
    '#value' => $group_type,
  );
  $form['gid'] = array(
    '#type' => 'value',
    '#value' => $gid,
  );
  $form['og_user'] = array(
    '#type' => 'fieldset',
    '#title' => t('Add a group member to %group', array(
      '%group' => $label,
    )),
  );
  $form['og_user']['name'] = array(
    '#type' => 'textfield',
    '#title' => t('User name'),
    '#autocomplete_path' => 'user/autocomplete',
    '#required' => TRUE,
  );
  $form['og_user']['state'] = array(
    '#type' => 'value',
    '#value' => OG_STATE_ACTIVE,
  );

  // Get all the non-default roles.
  if ($og_roles = og_roles($group_type, $bundle, $gid, FALSE, FALSE)) {
    $form['og_user']['roles'] = array(
      '#type' => 'checkboxes',
      '#options' => $og_roles,
      '#title' => t('Roles'),
    );
  }
  $field_names = og_get_group_audience_fields('user', 'user', $group_type, $bundle);
  $field_name = !empty($form_state['values']['field_name']) ? $form_state['values']['field_name'] : key($field_names);
  if (count($field_names) > 1) {
    $form['og_user']['field_name'] = array(
      '#type' => 'select',
      '#title' => t('Field name'),
      '#options' => $field_names,
      '#default_value' => $field_name,
      '#description' => t('Select the field name, the group membership should be registered in.'),
      '#ajax' => array(
        'callback' => 'og_ui_admin_add_user_ajax_callback',
        'wrapper' => 'og-ui-field-name',
      ),
    );
  }
  else {

    // There is only a single field name, so just pass it as a value.
    $form['og_user']['field_name'] = array(
      '#type' => 'value',
      '#value' => $field_name,
    );
  }

  // Add group membership form.
  $values = array();

  // Add group membership form. We still don't have the user or state.
  $og_membership = og_membership_create($group_type, $gid, 'user', 0, $field_name, $values);
  $form_state['og_membership'] = $og_membership;
  $form['membership_fields'] = array(
    '#prefix' => '<div id="og-ui-field-name">',
    '#suffix' => '</div>',
    '#tree' => TRUE,
    '#parents' => array(
      'membership_fields',
    ),
  );
  field_attach_form('og_membership', $og_membership, $form['membership_fields'], $form_state);
  $form['actions'] = array(
    '#type' => 'actions',
  );
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Add users'),
  );
  return $form;
}