function delete_user($user_id, $delete_posts = false) { global $forum_db, $db_type, $forum_config; $return = ($hook = get_hook('fn_delete_user_start')) ? eval($hook) : null; if ($return != null) { return; } // First we need to get some data on the user $query = array('SELECT' => 'u.username, u.group_id, g.g_moderator', 'FROM' => 'users AS u', 'JOINS' => array(array('INNER JOIN' => 'groups AS g', 'ON' => 'g.g_id=u.group_id')), 'WHERE' => 'u.id=' . $user_id); ($hook = get_hook('fn_delete_user_qr_get_user_data')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); $user = $forum_db->fetch_assoc($result); // Delete any subscriptions $query = array('DELETE' => 'subscriptions', 'WHERE' => 'user_id=' . $user_id); ($hook = get_hook('fn_delete_user_qr_delete_subscriptions')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); // Delete any subscriptions forum $query = array('DELETE' => 'forum_subscriptions', 'WHERE' => 'user_id=' . $user_id); ($hook = get_hook('fn_delete_user_qr_delete_forum_subscriptions')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); // Remove him/her from the online list (if they happen to be logged in) $query = array('DELETE' => 'online', 'WHERE' => 'user_id=' . $user_id); ($hook = get_hook('fn_delete_user_qr_delete_online')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); // Should we delete all posts made by this user? if ($delete_posts) { @set_time_limit(0); // Find all posts made by this user $query = array('SELECT' => 'p.id, p.topic_id, t.forum_id, t.first_post_id', 'FROM' => 'posts AS p', 'JOINS' => array(array('INNER JOIN' => 'topics AS t', 'ON' => 't.id=p.topic_id')), 'WHERE' => 'p.poster_id=' . $user_id); ($hook = get_hook('fn_delete_user_qr_get_user_posts')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); while ($cur_post = $forum_db->fetch_assoc($result)) { if ($cur_post['first_post_id'] == $cur_post['id']) { delete_topic($cur_post['topic_id'], $cur_post['forum_id']); } else { delete_post($cur_post['id'], $cur_post['topic_id'], $cur_post['forum_id']); } } } else { // Set all his/her posts to guest $query = array('UPDATE' => 'posts', 'SET' => 'poster_id=1', 'WHERE' => 'poster_id=' . $user_id); ($hook = get_hook('fn_delete_user_qr_reset_user_posts')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); } // Delete the user $query = array('DELETE' => 'users', 'WHERE' => 'id=' . $user_id); ($hook = get_hook('fn_delete_user_qr_delete_user')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); // Delete user avatar delete_avatar($user_id); // If the user is a moderator or an administrator, we remove him/her from the moderator list in all forums // and regenerate the bans cache (in case he/she created any bans) if ($user['group_id'] == FORUM_ADMIN || $user['g_moderator'] == '1') { clean_forum_moderators(); // Regenerate the bans cache if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require FORUM_ROOT . 'include/cache.php'; } generate_bans_cache(); } ($hook = get_hook('fn_delete_user_end')) ? eval($hook) : null; }
// If the group doesn't have any members or if we've already selected a group to move the members to if (!$forum_db->num_rows($result) || isset($_POST['del_group'])) { ($hook = get_hook('agr_del_group_form_submitted')) ? eval($hook) : null; if (isset($_POST['del_group'])) { $query = array('UPDATE' => 'users', 'SET' => 'group_id=' . intval($_POST['move_to_group']), 'WHERE' => 'group_id=' . $group_id); ($hook = get_hook('agr_del_group_qr_move_users')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); } // Delete the group and any forum specific permissions $query = array('DELETE' => 'groups', 'WHERE' => 'g_id=' . $group_id); ($hook = get_hook('agr_del_group_qr_delete_group')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); $query = array('DELETE' => 'forum_perms', 'WHERE' => 'group_id=' . $group_id); ($hook = get_hook('agr_del_group_qr_delete_group_forum_perms')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); clean_forum_moderators(); // Regenerate the quickjump cache if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require FORUM_ROOT . 'include/cache.php'; } generate_quickjump_cache(); ($hook = get_hook('agr_del_group_pre_redirect')) ? eval($hook) : null; redirect(forum_link($forum_url['admin_groups']), $lang_admin_groups['Group removed'] . ' ' . $lang_admin_common['Redirect']); } list($group_title, $num_members) = $forum_db->fetch_row($result); // Setup the form $forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0; // Setup breadcrumbs $forum_page['crumbs'] = array(array($forum_config['o_board_title'], forum_link($forum_url['index'])), array($lang_admin_common['Forum administration'], forum_link($forum_url['admin_index'])), array($lang_admin_common['Users'], forum_link($forum_url['admin_users'])), array($lang_admin_common['Groups'], forum_link($forum_url['admin_groups'])), $lang_admin_groups['Remove group']); ($hook = get_hook('agr_del_group_pre_header_load')) ? eval($hook) : null; define('FORUM_PAGE_SECTION', 'users');