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;
}