You are here

function og_ui_edit_membership in Organic groups 7.2

Add Edit membership form.

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

File

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

Code

function og_ui_edit_membership($form, &$form_state, $group_type, $gid, $og_membership) {
  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);
  $account = user_load($og_membership->etid);
  list(, , $bundle) = entity_extract_ids($group_type, $group);

  // Get all the non-default roles.
  $og_roles = og_roles($group_type, $bundle, $gid, FALSE, FALSE);
  $form['group_type'] = array(
    '#type' => 'value',
    '#value' => $group_type,
  );
  $form['gid'] = array(
    '#type' => 'value',
    '#value' => $gid,
  );
  $form['id'] = array(
    '#type' => 'value',
    '#value' => $og_membership->id,
  );
  $form['og_user'] = array(
    '#type' => 'fieldset',
    '#title' => t('Edit a group membership in %group', array(
      '%group' => $label,
    )),
  );
  $form['og_user']['name'] = array(
    '#type' => 'markup',
    '#title' => t('User name'),
    '#markup' => $account->name,
  );
  $form['og_user']['state'] = array(
    '#type' => 'select',
    '#title' => t('Status'),
    '#description' => t('Change the current membership status.'),
    '#options' => og_group_content_states(),
    '#default_value' => $og_membership->state,
  );
  if ($og_roles) {
    $form['og_user']['roles'] = array(
      '#type' => 'checkboxes',
      '#options' => $og_roles,
      '#title' => t('Roles'),
      '#default_value' => array_keys(og_get_user_roles($group_type, $gid, $account->uid)),
      '#disabled' => $og_membership->state != OG_STATE_ACTIVE,
    );
  }

  // Add group membership form. We still don't have the user or state.
  $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('Update membership'),
  );

  // You can't delete the group manager.
  if (!isset($group->uid) || $group->uid != $account->uid) {
    $form['actions']['delete'] = array(
      '#type' => 'markup',
      '#markup' => l(t('Remove'), 'group/node/' . $gid . '/admin/people/delete-membership/' . $og_membership->id),
    );
  }
  return $form;
}