Beispiel #1
0
function forum_delete($fid)
{
    if (!session::check_perm(USER_PERM_FORUM_TOOLS, 0)) {
        return false;
    }
    if (!($db = db::get())) {
        return false;
    }
    if (!is_numeric($fid)) {
        return false;
    }
    $sql = "SELECT WEBTAG, DATABASE_NAME FROM FORUMS WHERE FID = '{$fid}'";
    if (!($result = $db->query($sql))) {
        return false;
    }
    if ($result->num_rows == 0) {
        return false;
    }
    list($webtag, $database_name) = $result->fetch_row();
    $sql = "DELETE QUICK FROM FORUMS WHERE FID = '{$fid}'";
    if (!$db->query($sql)) {
        return false;
    }
    $sql = "DELETE QUICK FROM FORUM_SETTINGS WHERE FID = '{$fid}'";
    if (!$db->query($sql)) {
        return false;
    }
    $sql = "DELETE QUICK FROM SEARCH_RESULTS WHERE FID = '{$fid}'";
    if (!$db->query($sql)) {
        return false;
    }
    $sql = "DELETE QUICK FROM VISITOR_LOG WHERE FORUM = '{$fid}'";
    if (!$db->query($sql)) {
        return false;
    }
    $sql = "DELETE QUICK FROM POST_ATTACHMENT_FILES ";
    $sql .= "WHERE AID IN (SELECT AID FROM POST_ATTACHMENT_IDS ";
    $sql .= "WHERE FID = '{$fid}')";
    if (!$db->query($sql)) {
        return false;
    }
    $sql = "DELETE QUICK FROM POST_ATTACHMENT_IDS WHERE FID = '{$fid}'";
    if (!$db->query($sql)) {
        return false;
    }
    $sql = "DELETE QUICK FROM GROUP_PERMS WHERE FORUM = '{$fid}'";
    if (!$db->query($sql)) {
        return false;
    }
    if (!forum_delete_tables($webtag, $database_name)) {
        return false;
    }
    return true;
}
Beispiel #2
0
function forum_delete($fid)
{
    if (bh_session_check_perm(USER_PERM_FORUM_TOOLS, 0)) {
        if (!($db_forum_delete = db_connect())) {
            return false;
        }
        if (!is_numeric($fid)) {
            return false;
        }
        $sql = "SELECT WEBTAG, DATABASE_NAME FROM FORUMS WHERE FID = '{$fid}'";
        if (!($result = db_query($sql, $db_forum_delete))) {
            return false;
        }
        if (db_num_rows($result) > 0) {
            list($webtag, $database_name) = db_fetch_array($result, DB_RESULT_NUM);
            $sql = "DELETE QUICK FROM FORUMS WHERE FID = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            $sql = "DELETE QUICK FROM FORUM_SETTINGS WHERE FID = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            $sql = "DELETE QUICK FROM GROUP_PERMS WHERE FORUM = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            $sql = "SELECT GID FROM GROUPS WHERE FORUM = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            while ($user_perms = db_fetch_array($result)) {
                $sql = "DELETE QUICK FROM GROUP_USERS WHERE GID = '{$user_perms['GID']}'";
                if (!($result_remove = db_query($sql, $db_forum_delete))) {
                    return false;
                }
            }
            $sql = "DELETE QUICK FROM GROUPS WHERE FORUM = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            $sql = "DELETE QUICK FROM USER_FORUM WHERE FID = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            $sql = "DELETE QUICK FROM VISITOR_LOG WHERE FORUM = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            $sql = "DELETE QUICK FROM SEARCH_RESULTS WHERE FORUM = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            $sql = "SELECT AID FROM POST_ATTACHMENT_IDS WHERE FID = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            while ($attachment_data = db_fetch_array($result)) {
                delete_attachment_by_aid($attachment_data['AID']);
            }
            $sql = "DELETE QUICK FROM POST_ATTACHMENT_IDS WHERE FID = '{$fid}'";
            if (!($result = db_query($sql, $db_forum_delete))) {
                return false;
            }
            if (forum_delete_tables($webtag, $database_name)) {
                return true;
            }
        }
    }
    return false;
}