if (!$xmember_handler->isAdmin($uid) && !$admin_xgroup_handler->isGroupAdmin($uid, $gid)) {
         xoonips_group_error('groupadmin.php', 'select');
     }
     $gids = array($gid);
     $xg_obj =& $admin_xgroup_handler->getGroupObject($gid);
     $breadcrumbs[] = array('name' => $xg_obj->getVar('gname', 's'), 'url' => XOOPS_URL . '/modules/xoonips/groupadmin.php?op=edit&gid=' . $gid);
     break;
 case 'update':
     $gid = $formdata->getValue('post', 'gid', 'i', true);
     if (!$xmember_handler->isAdmin($uid) && !$admin_xgroup_handler->isGroupAdmin($uid, $gid)) {
         xoonips_group_error('groupadmin.php', 'select');
     }
     $mode = $formdata->getValue('post', 'mode', 's', true);
     $guids = $formdata->getValueArray('post', 'uids', 'i', false);
     if (!in_array($mode, array('add', 'delete'))) {
         xoonips_group_error('groupadmin.php', 'update');
     }
     foreach ($guids as $guid) {
         if ($admin_xgroup_handler->isGroupAdmin($guid, $gid)) {
             // ignore if group administrator
             continue;
         }
         if ($mode == 'add') {
             // subscribe to group
             $admin_xgroup_handler->addUserToXooNIpsGroup($gid, $guid, false);
         } else {
             // unsubscribe from group
             $admin_xgroup_handler->deleteUserFromXooNIpsGroup($gid, $guid);
         }
     }
     $gids = array($gid);
        break;
    case 'delete':
        if (!$xoopsGTicket->check(true, $ticket_area, false)) {
            redirect_header('editgroups.php', 3, $xoopsGTicket->getErrors());
            exit;
        }
        $gid = $formdata->getValue('post', 'gid', 'i', true);
        $xg_obj =& $admin_xgroup_handler->getGroupObject($gid);
        if (!is_object($xg_obj)) {
            xoonips_group_error('editgroups.php', 'select');
        }
        if (!xoonips_group_check_perm($gid, 'delete')) {
            xoonips_group_error('editgroups.php', 'lock_delete');
        }
        if (!$admin_xgroup_handler->deleteGroup($gid)) {
            xoonips_group_error('editgroups.php', 'delete');
        }
        $op = '';
        break;
}
if ($op == '') {
    $gid = 0;
    $gname = '';
    $gdesc = '';
    $gilimit = $xconfig_handler->getValue('group_item_number_limit');
    $gxlimit = $xconfig_handler->getValue('group_index_number_limit');
    $gslimit = $xconfig_handler->getValue('group_item_storage_limit') / 1000 / 1000;
    $gadmin_uids = array();
}
$groups = $groups_show ? xoonips_group_get_groups($uid) : array();
$gadmins = xoonips_group_get_users($gadmin_uids);