|
@@ -67,91 +67,8 @@ function Groups()
|
|
|
*/
|
|
|
function GroupList()
|
|
|
{
|
|
|
- global $txt, $scripturl, $user_profile, $user_info, $context, $settings, $modSettings, $smcFunc, $sourcedir;
|
|
|
+ global $txt, $context, $sourcedir;
|
|
|
|
|
|
- // Yep, find the groups...
|
|
|
- $request = $smcFunc['db_query']('', '
|
|
|
- SELECT mg.id_group, mg.group_name, mg.description, mg.group_type, mg.online_color, mg.hidden,
|
|
|
- mg.icons, IFNULL(gm.id_member, 0) AS can_moderate
|
|
|
- FROM {db_prefix}membergroups AS mg
|
|
|
- LEFT JOIN {db_prefix}group_moderators AS gm ON (gm.id_group = mg.id_group AND gm.id_member = {int:current_member})
|
|
|
- WHERE mg.min_posts = {int:min_posts}
|
|
|
- AND mg.id_group != {int:mod_group}' . (allowedTo('admin_forum') ? '' : '
|
|
|
- AND mg.group_type != {int:is_protected}') . '
|
|
|
- ORDER BY group_name',
|
|
|
- array(
|
|
|
- 'current_member' => $user_info['id'],
|
|
|
- 'min_posts' => -1,
|
|
|
- 'mod_group' => 3,
|
|
|
- 'is_protected' => 1,
|
|
|
- )
|
|
|
- );
|
|
|
- // This is where we store our groups.
|
|
|
- $context['groups'] = array();
|
|
|
- $group_ids = array();
|
|
|
- $context['can_moderate'] = allowedTo('manage_membergroups');
|
|
|
- while ($row = $smcFunc['db_fetch_assoc']($request))
|
|
|
- {
|
|
|
- // We only list the groups they can see.
|
|
|
- if ($row['hidden'] && !$row['can_moderate'] && !allowedTo('manage_membergroups'))
|
|
|
- continue;
|
|
|
-
|
|
|
- $row['icons'] = explode('#', $row['icons']);
|
|
|
-
|
|
|
- $context['groups'][$row['id_group']] = array(
|
|
|
- 'id' => $row['id_group'],
|
|
|
- 'name' => $row['group_name'],
|
|
|
- 'desc' => $row['description'],
|
|
|
- 'color' => $row['online_color'],
|
|
|
- 'type' => $row['group_type'],
|
|
|
- 'num_members' => 0,
|
|
|
- 'icons' => !empty($row['icons'][0]) && !empty($row['icons'][1]) ? str_repeat('<img src="' . $settings['images_url'] . '/' . $row['icons'][1] . '" alt="*" />', $row['icons'][0]) : '',
|
|
|
- );
|
|
|
-
|
|
|
- $context['can_moderate'] |= $row['can_moderate'];
|
|
|
- $group_ids[] = $row['id_group'];
|
|
|
- }
|
|
|
- $smcFunc['db_free_result']($request);
|
|
|
-
|
|
|
- // Count up the members separately...
|
|
|
- if (!empty($group_ids))
|
|
|
- {
|
|
|
- $query = $smcFunc['db_query']('', '
|
|
|
- SELECT id_group, COUNT(*) AS num_members
|
|
|
- FROM {db_prefix}members
|
|
|
- WHERE id_group IN ({array_int:group_list})
|
|
|
- GROUP BY id_group',
|
|
|
- array(
|
|
|
- 'group_list' => $group_ids,
|
|
|
- )
|
|
|
- );
|
|
|
- while ($row = $smcFunc['db_fetch_assoc']($query))
|
|
|
- $context['groups'][$row['id_group']]['num_members'] += $row['num_members'];
|
|
|
- $smcFunc['db_free_result']($query);
|
|
|
-
|
|
|
- // Only do additional groups if we can moderate...
|
|
|
- if ($context['can_moderate'])
|
|
|
- {
|
|
|
- $query = $smcFunc['db_query']('', '
|
|
|
- SELECT mg.id_group, COUNT(*) AS num_members
|
|
|
- FROM {db_prefix}membergroups AS mg
|
|
|
- INNER JOIN {db_prefix}members AS mem ON (mem.additional_groups != {string:blank_screen}
|
|
|
- AND mem.id_group != mg.id_group
|
|
|
- AND FIND_IN_SET(mg.id_group, mem.additional_groups) != 0)
|
|
|
- WHERE mg.id_group IN ({array_int:group_list})
|
|
|
- GROUP BY mg.id_group',
|
|
|
- array(
|
|
|
- 'group_list' => $group_ids,
|
|
|
- 'blank_screen' => '',
|
|
|
- )
|
|
|
- );
|
|
|
- while ($row = $smcFunc['db_fetch_assoc']($query))
|
|
|
- $context['groups'][$row['id_group']]['num_members'] += $row['num_members'];
|
|
|
- $smcFunc['db_free_result']($query);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- $context['sub_template'] = 'group_index';
|
|
|
$context['page_title'] = $txt['viewing_groups'];
|
|
|
|
|
|
// Making a list is not hard with this beauty.
|
|
@@ -373,6 +290,7 @@ function list_getGroupCount()
|
|
|
* It allows sorting on several columns.
|
|
|
* It redirects to itself.
|
|
|
* @uses ManageMembergroups template, group_members sub template.
|
|
|
+ * @todo: use createList
|
|
|
*/
|
|
|
function MembergroupMembers()
|
|
|
{
|