UNION SELECT g.id, CAST(\'member\' AS TEXT) AS type
FROM {group} g
INNER JOIN {group_member} gm ON (g.id = gm.group AND gm.member = ?)
WHERE g.owner != gm.member
) t ON t.id = g.id';
$values=array($USER->get('id'),$USER->get('id'));
}
elseif($filter=='invite'){
$sql='
INNER JOIN (
SELECT g.id, CAST(\'invite\' AS TEXT) AS type
FROM {group} g
INNER JOIN {group_member_invite} gmi ON (gmi.group = g.id AND gmi.member = ?)
) t ON t.id = g.id';
$values=array($USER->get('id'));
}
elseif($filter=='request'){
$sql='
INNER JOIN (
SELECT g.id, CAST(\'request\' AS TEXT) AS type
FROM {group} g
INNER JOIN {group_member_request} gmr ON (gmr.group = g.id AND gmr.member = ?)
) t ON t.id = g.id';
$values=array($USER->get('id'));
}
$count=count_records_sql('SELECT COUNT(g.*) FROM {group} g '.$sql,$values);
$sql='SELECT g.id, g.name, g.description, g.owner, g.jointype, m.member1 AS member1, m.member2 AS member2, t.type, MIN(gm.member) AS member3, COUNT(gm2.*) AS membercount, COUNT(gmr.*) AS requests
FROM {group} g
LEFT JOIN (
SELECT m.member AS member1, g.id AS group, MIN(gm.member) AS member2
FROM {group} g
LEFT JOIN (
SELECT g.id AS group, MIN(gm.member) AS member
FROM {group} g
LEFT JOIN {group_member} gm ON (gm.group = g.id)
GROUP BY 1
) m on m.group = g.id
LEFT JOIN {group_member} gm ON (gm.group = g.id AND m.member != gm.member)
GROUP BY 1, 2
) m ON m.group = g.id
LEFT JOIN {group_member} gm ON (gm.group = g.id AND gm.member != m.member1 AND gm.member != m.member2)
LEFT JOIN {group_member} gm2 ON (gm2.group = g.id)
LEFT JOIN {group_member_request} gmr ON (gmr.group = g.id)'.