/** * Return paginated status updates for user ids * * @param array $user_ids * @param integer $page * @param integer $per_page * @return array */ function paginateByUserIds($user_ids = null, $page = 1, $per_page = 30) { $status_updates_table = TABLE_PREFIX . 'status_updates'; $status_update_ids = array(); $rows = db_execute_all("SELECT id, parent_id FROM {$status_updates_table} WHERE created_by_id IN (?)", $user_ids); if (is_foreachable($rows)) { foreach ($rows as $row) { if ($row['parent_id'] == 0) { $status_update_ids[] = (int) $row['id']; } else { $parent_id = (int) $row['parent_id']; if (!in_array($parent_id, $status_update_ids)) { $status_update_ids[] = $parent_id; } // if } // if } // foreach } // if return StatusUpdates::paginate(array('conditions' => array('id IN (?)', $status_update_ids), 'order' => 'last_update_on DESC'), $page, $per_page); }