Example #1
0
function api_account_fetch_mini_profiles($user_ids)
{
    $user_ids = sort_and_remove_duplicates($user_ids);
    $output = array();
    $keys_to_id = array();
    $ordered_keys = array();
    if (count($user_ids) > 0) {
        $user_infos = sql_query("\n\t\t\t\tSELECT\n\t\t\t\t\t`user_id`,`login_id`,`name`,`flags`,`image_id`,`image_dim`,`time_last_online`,`post_count`\n\t\t\t\tFROM `users`\n\t\t\t\tWHERE `user_id` IN (" . implode(', ', $user_ids) . ")");
        for ($i = 0; $i < $user_infos->num_rows; ++$i) {
            $user_info = api_account_canonicalize_user_db_entry($user_infos->fetch_assoc());
            $output['user_' . $user_info['user_id']] = $user_info;
            $keys_to_id[$user_info['login_id']] = $user_info['user_id'];
            array_push($ordered_keys, $user_info['login_id']);
        }
        sort($ordered_keys);
    }
    $output['keys_to_user_ids'] = $keys_to_id;
    $output['ordered_user_keys'] = $ordered_keys;
    return $output;
}
Example #2
0
function api_forum_get_posts($post_ids, $fetch_thread_info_too = false, $fetch_user_info_too = false, $fetch_category_info_too = false)
{
    $post_infos = array();
    $post_ids = sort_and_remove_duplicates($post_ids);
    if (count($post_ids) > 0) {
        $posts = sql_query("SELECT * FROM `forum_posts` WHERE `post_id` IN (" . implode(',', $post_ids) . ")");
        $thread_ids = array();
        $user_ids = array();
        $category_ids = array();
        for ($i = 0; $i < $posts->num_rows; ++$i) {
            $post = api_forum_canonicalize_post_db_entry($posts->fetch_assoc());
            $post_infos['post_' . $post['post_id']] = $post;
            array_push($thread_ids, $post['thread_id']);
            array_push($user_ids, $post['user_id']);
        }
        if ($fetch_thread_info_too) {
            if (count($thread_ids) > 0) {
                $threads = sql_query("SELECT * FROM `forum_threads` WHERE `thread_id` IN (" . implode(', ', $thread_ids) . ")");
                for ($i = 0; $i < $threads->num_rows; ++$i) {
                    $thread = api_forum_canonicalize_thread_db_entry($threads->fetch_assoc());
                    $post_infos['thread_' . $thread['thread_id']] = $thread;
                    array_push($category_ids, $thread['category_id']);
                }
            }
        }
        if ($fetch_user_info_too) {
            $user_infos = api_account_fetch_mini_profiles($user_ids);
            foreach ($user_infos as $key => $value) {
                $post_infos[$key] = $value;
            }
        }
        if ($fetch_category_info_too) {
            $category_ids = sort_and_remove_duplicates($category_ids);
            if (count($category_ids) > 0) {
                $categories = sql_query("SELECT * FROM `forum_categories` WHERE `category_id` IN (" . implode(', ', $category_ids) . ")");
                for ($i = 0; $i < $categories->num_rows; ++$i) {
                    $category = api_forum_canonicalize_category_db_entry($categories->fetch_assoc());
                    $post_infos['category_' . $category['category_id']] = $category;
                }
            }
        }
    }
    return $post_infos;
}