/** * Returns the last messages for the user. * * @param integer $offset * @param integer $count * * @return array */ protected function getItems($offset, $count) { $folderClassCache = array(); $items = array(); /* @var Bengine_Game_Model_Collection_Message $messages */ $messages = Comm::getCollection("game/message"); $messages->addTimeOrder()->addReceiverFilter($this->user_id)->addFolderJoin(); $select = $messages->getSelect(); $select->limit($offset, $count); $select->where("m.mode != ?", self::OUTBOX_FOLDER_ID); /* @var Bengine_Game_Model_Message $message */ foreach ($messages as $message) { /* @var Bengine_Game_MessageFolder_Abstract $folderObj */ $folderCode = $message->get("folder_class"); if (!isset($folderClassCache[$folderCode])) { $folderClass = explode("/", $folderCode); $folderClass = $folderClass[0] . "/messageFolder_" . $folderClass[1]; $folderObj = Application::factory($folderClass); $folderClassCache[$folderCode] = $folderObj; } else { $folderObj = $folderClassCache[$folderCode]; } $folderObj->formatMessage($message, true); $items[] = array("date" => Date::timeToString(3, $message->getTime(), "D, d M Y H:i:s O", false), "author" => $message->get("username") ? $message->get("username") : "System", "title" => strip_tags($message->get("subject")), "text" => $message->get("message"), "link" => $message->get("link"), "date_atom" => Date::timeToString(3, $message->getTime(), "c", false), "guid" => $message->getId()); } return $items; }