示例#1
0
 /**
  * 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;
 }