/**
 * Fetches groups that the current user is a member of
 * If iconview is false, then the info for the listview will be fetched.
 *
 * @param boolean $iconview						Selects info for the icon view
 * @return array								Array of groupinfos
 */
function fetch_socialgroups_mygroups($iconview = true)
{
    global $vbulletin;
    $result = $vbulletin->db->query_read_slave("\n\t\tSELECT socialgroup.*, socialgroup.dateline AS createdate,\n\t\t\tsocialgroupmember.type AS membertype,\n\t\t\tgroupread.readtime" . ($iconview ? ",sgicon.dateline AS icondateline, sgicon.thumbnail_width AS iconthumb_width, sgicon.thumbnail_height AS iconthumb_height" : ',socialgroupmember.dateline AS joindate, socialgroupmember.type AS membertype, sgc.title AS categoryname, sgc.socialgroupcategoryid AS categoryid') . "\n\t\tFROM " . TABLE_PREFIX . "socialgroupmember AS socialgroupmember\n\t\tINNER JOIN " . TABLE_PREFIX . "socialgroup AS socialgroup ON (socialgroup.groupid = socialgroupmember.groupid)\n\t\tLEFT JOIN " . TABLE_PREFIX . "groupread AS groupread ON (groupread.groupid = socialgroup.groupid\n\t\t\t\t\t\t\t\t\t\tAND groupread.userid = " . $vbulletin->userinfo['userid'] . ")" . ($iconview ? 'LEFT JOIN ' . TABLE_PREFIX . 'socialgroupicon AS sgicon ON sgicon.groupid = socialgroup.groupid' : 'INNER JOIN ' . TABLE_PREFIX . 'socialgroupcategory AS sgc ON (sgc.socialgroupcategoryid = socialgroup.socialgroupcategoryid)') . "\n\t\tWHERE socialgroupmember.userid = " . $vbulletin->userinfo['userid'] . " AND socialgroupmember.type = 'member'\n\t\tORDER BY socialgroupmember.dateline DESC\n\t");
    $groups = array();
    while ($group = $vbulletin->db->fetch_array($result)) {
        $group = prepare_socialgroup($group);
        if (!$iconview) {
            $group['delete_group'] = can_delete_group($group);
            $group['edit_group'] = can_edit_group($group);
            $group['leave_group'] = can_leave_group($group);
            $group['group_options'] = ($group['delete_group'] or $group['edit_group'] or $group['leave_group']);
        }
        $groups[] = $group;
    }
    $vbulletin->db->free_result($result);
    return $groups;
}
Beispiel #2
0
             case 'member':
                 $leavephrase = $vbphrase['leave_social_group'];
                 break;
             case 'invited':
                 $leavephrase = $vbphrase['decline_join_invitation'];
                 break;
             case 'moderated':
                 $leavephrase = $vbphrase['cancel_join_request'];
                 break;
         }
     }
     $groupoptions['leave'] = $allowedtoleave ? 'alt1' : '';
     $show['groupoptions'] = $allowedtoleave ? true : $show['groupoptions'];
     break;
 case 'edit':
     $allowedtoedit = can_edit_group($group);
     $groupoptions['edit'] = $allowedtoedit ? 'alt1' : '';
     $show['groupoptions'] = $allowedtoedit ? true : $show['groupoptions'];
     break;
 case 'delete':
     $allowedtodelete = can_delete_group($group);
     $groupoptions['delete'] = $allowedtodelete ? 'alt1' : '';
     $show['groupoptions'] = $allowedtodelete ? true : $show['groupoptions'];
     break;
 case 'manage':
     $allowedtomanage = fetch_socialgroup_modperm('caninvitemoderatemembers', $group);
     $groupoptions['manage'] = $allowedtomanage ? 'alt1' : '';
     $show['groupoptions'] = $allowedtomanage ? true : $show['groupoptions'];
     break;
 case 'managemembers':
     $allowedtomanagemembers = fetch_socialgroup_modperm('canmanagemembers', $group);
Beispiel #3
0
        $show['url_option'] = (ini_get('allow_url_fopen') != 0 or function_exists('curl_init'));
    }
    // navbits
    $navbits = array('group.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['social_groups']);
    if ($_REQUEST['do'] == 'edit') {
        $navbits['group.php?' . $vbulletin->session->vars['sessionurl'] . 'cat=' . $group['socialgroupcategoryid']] = $group['categoryname'];
        $navbits['group.php?' . $vbulletin->session->vars['sessionurl'] . 'groupid=' . $group['groupid']] = $group['name'];
    }
    $navbits[''] = $phrase;
    $url = $vbulletin->url;
    $templatename = 'socialgroups_form';
}
// #######################################################################
if ($_POST['do'] == 'doedit') {
    $vbulletin->input->clean_array_gpc('p', array('groupname' => TYPE_NOHTML, 'groupdescription' => TYPE_NOHTML, 'grouptype' => TYPE_STR, 'socialgroupcategoryid' => TYPE_UINT, 'options' => TYPE_ARRAY_BOOL));
    if (!can_edit_group($group)) {
        print_no_permission();
    }
    $groupdm =& datamanager_init('SocialGroup', $vbulletin, ERRTYPE_STANDARD);
    $groupdm->set_existing($group);
    if (can_moderate(0, 'caneditsocialgroups') or $group['members'] == 1) {
        $groupdm->set('name', $vbulletin->GPC['groupname']);
    }
    $groupdm->set('description', $vbulletin->GPC['groupdescription']);
    $groupdm->set('type', $vbulletin->GPC['grouptype']);
    if (!$vbulletin->GPC['socialgroupcategoryid']) {
        $groupdm->error('must_select_a_category');
    }
    $groupdm->set('socialgroupcategoryid', $vbulletin->GPC['socialgroupcategoryid']);
    foreach (array_keys($vbulletin->bf_misc_socialgroupoptions) as $key) {
        switch ($key) {
/**
 * Fetches groups recently updated
 *
 * @return array								Array of groupinfos
 */
function fetch_socialgroups_updatedgroups()
{
	global $vbulletin;

	$result = $vbulletin->db->query_read_slave("
		SELECT socialgroup.*, socialgroup.dateline AS createdate,
			socialgroupmember.type AS membertype, socialgroupmember.dateline AS joindate,
			groupread.readtime
			,sgicon.dateline AS icondateline, sgicon.thumbnail_width AS iconthumb_width, sgicon.thumbnail_height AS iconthumb_height
			,sgc.title AS categoryname, sgc.socialgroupcategoryid AS categoryid
		FROM " . TABLE_PREFIX . "socialgroup AS socialgroup
		LEFT JOIN " . TABLE_PREFIX ."socialgroupmember AS socialgroupmember
			ON (socialgroup.groupid = socialgroupmember.groupid AND socialgroupmember.userid = " . $vbulletin->userinfo['userid'] . ")
		LEFT JOIN " . TABLE_PREFIX . "groupread AS groupread ON (groupread.groupid = socialgroup.groupid
										AND groupread.userid = " . $vbulletin->userinfo['userid'] . ")
		LEFT JOIN " . TABLE_PREFIX . "socialgroupicon AS sgicon ON sgicon.groupid = socialgroup.groupid
		INNER JOIN " . TABLE_PREFIX . "socialgroupcategory AS sgc ON (sgc.socialgroupcategoryid = socialgroup.socialgroupcategoryid)
		ORDER BY socialgroup.lastupdate DESC
		LIMIT 0, 10
	");

	$groups = array();
	while ($group = $vbulletin->db->fetch_array($result))
	{
		$group['delete_group'] = can_delete_group($group);
		$group['edit_group'] = can_edit_group($group);
		$group['leave_group'] = can_leave_group($group);
		$group['group_options'] = ($group['delete_group'] OR $group['edit_group'] OR $group['leave_group']);

		$groups[] = $group;
	}
	$vbulletin->db->free_result($result);

	return $groups;
}
/**
 * Fetches groups recently updated
 *
 * @return array								Array of groupinfos
 */
function fetch_socialgroups_updatedgroups()
{
    global $vbulletin;
    $hook_query_fields = $hook_query_joins = $hook_query_where = '';
    ($hook = vBulletinHook::fetch_hook('group_updatedgroups_query')) ? eval($hook) : false;
    $result = $vbulletin->db->query_read_slave("\n\t\tSELECT socialgroup.*, socialgroup.dateline AS createdate,\n\t\t\tsocialgroupmember.type AS membertype, socialgroupmember.dateline AS joindate,\n\t\t\tgroupread.readtime\n\t\t\t,sgicon.dateline AS icondateline, sgicon.thumbnail_width AS iconthumb_width, sgicon.thumbnail_height AS iconthumb_height\n\t\t\t,sgc.title AS categoryname, sgc.socialgroupcategoryid AS categoryid\n\t\t{$hook_query_fields}\n\t\tFROM " . TABLE_PREFIX . "socialgroup AS socialgroup\n\t\tLEFT JOIN " . TABLE_PREFIX . "socialgroupmember AS socialgroupmember\n\t\t\tON (socialgroup.groupid = socialgroupmember.groupid AND socialgroupmember.userid = " . $vbulletin->userinfo['userid'] . ")\n\t\tLEFT JOIN " . TABLE_PREFIX . "groupread AS groupread ON (groupread.groupid = socialgroup.groupid\n\t\t\t\t\t\t\t\t\t\tAND groupread.userid = " . $vbulletin->userinfo['userid'] . ")\n\t\tLEFT JOIN " . TABLE_PREFIX . "socialgroupicon AS sgicon ON sgicon.groupid = socialgroup.groupid\n\t\tINNER JOIN " . TABLE_PREFIX . "socialgroupcategory AS sgc ON (sgc.socialgroupcategoryid = socialgroup.socialgroupcategoryid)\n\t\t{$hook_query_joins}\n\t\t{$hook_query_where}\n\t\tORDER BY socialgroup.lastupdate DESC\n\t\tLIMIT 0, 10\n\t");
    $groups = array();
    while ($group = $vbulletin->db->fetch_array($result)) {
        $group['delete_group'] = can_delete_group($group);
        $group['edit_group'] = can_edit_group($group);
        $group['leave_group'] = can_leave_group($group);
        $group['group_options'] = ($group['delete_group'] or $group['edit_group'] or $group['leave_group']);
        $groups[] = $group;
    }
    $vbulletin->db->free_result($result);
    return $groups;
}