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; }
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; }