From b1c12648f06332afe7007d61ec1b8c5060c35133 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 14 Jul 2011 13:07:34 -0400 Subject: [PATCH] Revert "use Notice::multiGet() for NoticeStream::getStreamByIds()" This reverts commit 9ab0a6f760ddf847b4f9ec13ea6a04d123bb9cb0. --- lib/noticestream.php | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/lib/noticestream.php b/lib/noticestream.php index e9ff47b68c..be28aa6186 100644 --- a/lib/noticestream.php +++ b/lib/noticestream.php @@ -59,6 +59,42 @@ abstract class NoticeStream static function getStreamByIds($ids) { - return Notice::multiGet('id', $ids); + $cache = Cache::instance(); + + if (!empty($cache)) { + $notices = array(); + foreach ($ids as $id) { + $n = Notice::staticGet('id', $id); + if (!empty($n)) { + $notices[] = $n; + } + } + return new ArrayWrapper($notices); + } else { + $notice = new Notice(); + if (empty($ids)) { + //if no IDs requested, just return the notice object + return $notice; + } + $notice->whereAdd('id in (' . implode(', ', $ids) . ')'); + + $notice->find(); + + $temp = array(); + + while ($notice->fetch()) { + $temp[$notice->id] = clone($notice); + } + + $wrapped = array(); + + foreach ($ids as $id) { + if (array_key_exists($id, $temp)) { + $wrapped[] = $temp[$id]; + } + } + + return new ArrayWrapper($wrapped); + } } } -- 2.39.5