/** * Find Newsfeed items. * * @static * @param integer $limit * @param array $users User ids * @return Database_Result */ public static function find_items($limit = 20, array $users = null) { $newsfeeditem = new Model_NewsfeedItem(); $query = DB::select_array($newsfeeditem->fields())->order_by('id', 'DESC'); if (is_array($users)) { $query = $query->where('user_id', 'IN', $users); } return $newsfeeditem->load($query, $limit); }
/** * Find Newsfeed items. * * @static * @param integer $limit * @param array $users User ids * @return Model_NewsfeedItem[] */ public static function find_items($limit = 20, array $users = null) { $newsfeeditem = new Model_NewsfeedItem(); $query = DB::select_array($newsfeeditem->fields())->order_by('stamp', 'DESC'); if (is_array($users)) { $query = $query->where('user_id', 'IN', $users); // Include friend events $friend_ids = array(); foreach ($users as $user_id) { $friend_ids[] = json_encode(array('friend_id' => $user_id)); } $query = $query->or_where_open()->where('class', '=', 'user')->and_where('type', '=', 'friend')->and_where('data', 'IN', $friend_ids)->or_where_close(); } return $newsfeeditem->load($query, $limit); }