| @@ 379-412 (lines=34) @@ | ||
| 376 | $smcFunc['db_free_result']($query); |
|
| 377 | } |
|
| 378 | ||
| 379 | if (!empty($normalGroups)) |
|
| 380 | { |
|
| 381 | // Find people who are members of this group... |
|
| 382 | $query = $smcFunc['db_query']('', ' |
|
| 383 | SELECT id_group, COUNT(*) AS member_count |
|
| 384 | FROM {db_prefix}members |
|
| 385 | WHERE id_group IN ({array_int:normal_group_list}) |
|
| 386 | GROUP BY id_group', |
|
| 387 | array( |
|
| 388 | 'normal_group_list' => $normalGroups, |
|
| 389 | ) |
|
| 390 | ); |
|
| 391 | while ($row = $smcFunc['db_fetch_assoc']($query)) |
|
| 392 | $context['groups'][$row['id_group']]['member_count'] += $row['member_count']; |
|
| 393 | $smcFunc['db_free_result']($query); |
|
| 394 | ||
| 395 | // Also do those who have it as an additional membergroup - this ones more yucky... |
|
| 396 | $query = $smcFunc['db_query']('', ' |
|
| 397 | SELECT mg.id_group, COUNT(*) AS member_count |
|
| 398 | FROM {db_prefix}membergroups AS mg |
|
| 399 | INNER JOIN {db_prefix}members AS mem ON (mem.additional_groups != {string:blank_string} |
|
| 400 | AND mem.id_group != mg.id_group |
|
| 401 | AND FIND_IN_SET(mg.id_group, mem.additional_groups) != 0) |
|
| 402 | WHERE mg.id_group IN ({array_int:normal_group_list}) |
|
| 403 | GROUP BY mg.id_group', |
|
| 404 | array( |
|
| 405 | 'normal_group_list' => $normalGroups, |
|
| 406 | 'blank_string' => '', |
|
| 407 | ) |
|
| 408 | ); |
|
| 409 | while ($row = $smcFunc['db_fetch_assoc']($query)) |
|
| 410 | $context['groups'][$row['id_group']]['member_count'] += $row['member_count']; |
|
| 411 | $smcFunc['db_free_result']($query); |
|
| 412 | } |
|
| 413 | ||
| 414 | // Any moderators? |
|
| 415 | $request = $smcFunc['db_query']('', ' |
|
| @@ 229-262 (lines=34) @@ | ||
| 226 | $smcFunc['db_free_result']($query); |
|
| 227 | } |
|
| 228 | ||
| 229 | if (!empty($normalGroups)) |
|
| 230 | { |
|
| 231 | // First, the easy one! |
|
| 232 | $query = $smcFunc['db_query']('', ' |
|
| 233 | SELECT id_group, COUNT(*) AS num_members |
|
| 234 | FROM {db_prefix}members |
|
| 235 | WHERE id_group IN ({array_int:normal_group_list}) |
|
| 236 | GROUP BY id_group', |
|
| 237 | array( |
|
| 238 | 'normal_group_list' => $normalGroups, |
|
| 239 | ) |
|
| 240 | ); |
|
| 241 | while ($row = $smcFunc['db_fetch_assoc']($query)) |
|
| 242 | $context['groups'][$row['id_group']]['num_members'] += $row['num_members']; |
|
| 243 | $smcFunc['db_free_result']($query); |
|
| 244 | ||
| 245 | // This one is slower, but it's okay... careful not to count twice! |
|
| 246 | $query = $smcFunc['db_query']('', ' |
|
| 247 | SELECT mg.id_group, COUNT(*) AS num_members |
|
| 248 | FROM {db_prefix}membergroups AS mg |
|
| 249 | INNER JOIN {db_prefix}members AS mem ON (mem.additional_groups != {string:blank_string} |
|
| 250 | AND mem.id_group != mg.id_group |
|
| 251 | AND FIND_IN_SET(mg.id_group, mem.additional_groups) != 0) |
|
| 252 | WHERE mg.id_group IN ({array_int:normal_group_list}) |
|
| 253 | GROUP BY mg.id_group', |
|
| 254 | array( |
|
| 255 | 'normal_group_list' => $normalGroups, |
|
| 256 | 'blank_string' => '', |
|
| 257 | ) |
|
| 258 | ); |
|
| 259 | while ($row = $smcFunc['db_fetch_assoc']($query)) |
|
| 260 | $context['groups'][$row['id_group']]['num_members'] += $row['num_members']; |
|
| 261 | $smcFunc['db_free_result']($query); |
|
| 262 | } |
|
| 263 | ||
| 264 | foreach ($context['groups'] as $id => $data) |
|
| 265 | { |
|
| @@ 760-795 (lines=36) @@ | ||
| 757 | $smcFunc['db_free_result']($query); |
|
| 758 | } |
|
| 759 | ||
| 760 | else |
|
| 761 | { |
|
| 762 | $query = $smcFunc['db_query']('', ' |
|
| 763 | SELECT id_group, COUNT(*) AS num_members |
|
| 764 | FROM {db_prefix}members |
|
| 765 | WHERE id_group IN ({array_int:group_list}) |
|
| 766 | GROUP BY id_group', |
|
| 767 | array( |
|
| 768 | 'group_list' => $group_ids, |
|
| 769 | ) |
|
| 770 | ); |
|
| 771 | while ($row = $smcFunc['db_fetch_assoc']($query)) |
|
| 772 | $groups[$row['id_group']]['num_members'] += $row['num_members']; |
|
| 773 | $smcFunc['db_free_result']($query); |
|
| 774 | ||
| 775 | // Only do additional groups if we can moderate... |
|
| 776 | if ($context['can_moderate']) |
|
| 777 | { |
|
| 778 | $query = $smcFunc['db_query']('', ' |
|
| 779 | SELECT mg.id_group, COUNT(*) AS num_members |
|
| 780 | FROM {db_prefix}membergroups AS mg |
|
| 781 | INNER JOIN {db_prefix}members AS mem ON (mem.additional_groups != {string:blank_string} |
|
| 782 | AND mem.id_group != mg.id_group |
|
| 783 | AND FIND_IN_SET(mg.id_group, mem.additional_groups) != 0) |
|
| 784 | WHERE mg.id_group IN ({array_int:group_list}) |
|
| 785 | GROUP BY mg.id_group', |
|
| 786 | array( |
|
| 787 | 'group_list' => $group_ids, |
|
| 788 | 'blank_string' => '', |
|
| 789 | ) |
|
| 790 | ); |
|
| 791 | while ($row = $smcFunc['db_fetch_assoc']($query)) |
|
| 792 | $groups[$row['id_group']]['num_members'] += $row['num_members']; |
|
| 793 | $smcFunc['db_free_result']($query); |
|
| 794 | } |
|
| 795 | } |
|
| 796 | ||
| 797 | $query = $smcFunc['db_query']('', ' |
|
| 798 | SELECT mods.id_group, mods.id_member, mem.member_name, mem.real_name |
|