View source
<?php
function opigno_simple_ui_og_menu_alter(&$items) {
$items['node/%/members'] = array_merge($items['group/%/%/admin/people'], array(
'title' => 'Members',
'title callback' => 't',
'title arguments' => array(),
'page arguments' => array(
'og_ui_user_admin_account',
0,
1,
),
'access arguments' => array(
'approve and deny subscription',
0,
1,
),
'type' => MENU_LOCAL_TASK,
));
$items['node/%/members/view'] = array(
'title' => 'Members',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$items['node/%/members/add'] = array_merge($items['group/%/%/admin/people/add-user'], array(
'page arguments' => array(
'og_ui_add_users',
0,
1,
),
'access arguments' => array(
'add user',
0,
1,
),
'type' => MENU_LOCAL_TASK,
));
$items['node/%/group']['type'] = MENU_CALLBACK;
}
function opigno_simple_ui_og_form_alter(&$form, &$form_state, $form_id) {
global $language;
if (strpos($form_id, '_node_form')) {
if (og_is_group_type('node', $form['#node']->type)) {
$form['group_group']['#type'] = 'hidden';
$form['group_group'][$form['#node']->language]['#type'] = 'hidden';
$form['group_group'][$form['#node']->language]['#value'] = 1;
}
elseif (og_is_group_content_type('node', $form['#node']->type)) {
if (isset($_GET['gids_node'])) {
$form['group_audience']['#attributes']['class'][] = 'element-hidden';
}
}
}
elseif ($form_id == 'og_ui_add_users') {
$form['og_user']['og_add_user_state']['#type'] = 'hidden';
$form['og_user']['og_add_user_state']['#value'] = 1;
$form['og_user']['og_add_user_membership_type']['#type'] = 'hidden';
$form['og_user']['og_add_user_membership_type']['#value'] = 'og_membership_type_default';
$roles = og_roles($form['group']['#value']->gid);
$form['og_user']['og_select_membership'] = array(
'#markup' => '<div><label>' . t("Role(s)") . '</label></div>',
);
$member_role = $roles[2];
$form['og_user']['og_member'] = array(
'#type' => 'checkbox',
'#title' => $member_role,
'#value' => 1,
'#attributes' => array(
'disabled' => 'disabled',
),
);
unset($roles[1], $roles[2]);
$form['og_user']['og_role'] = array(
'#type' => 'checkboxes',
'#options' => $roles,
'#required' => TRUE,
);
$form['#submit'][] = 'opigno_simple_ui_og_form_alter__add_role_to_user';
}
}
function opigno_simple_ui_og_form_alter__add_role_to_user($form, $form_state) {
$uid = db_select('users', 'u')
->fields('u', array(
'uid',
))
->condition('u.name', $form_state['values']['og_add_user'])
->execute()
->fetchField();
$gid = $form_state['values']['group']->gid;
$form_state['values']['og_role'][2] = '2';
db_delete('og_users_roles')
->condition('uid', $uid)
->condition('gid', $gid)
->execute();
foreach ($form_state['values']['og_role'] as $rid => $value) {
if ((string) $rid === $value) {
db_insert('og_users_roles')
->fields(array(
'uid' => $uid,
'rid' => $rid,
'gid' => $gid,
))
->execute();
}
}
}