/**
  * Get array of Message objects
  *
  * @param MessageFilter $filter
  * @param MysqlPager $pager
  * @param bool $headersOnly
  * @return array
  */
 public function getMessages(MessageFilter $filter = null, MysqlPager $pager = null, $headersOnly = true, $cacheMinutes = 0)
 {
     if ($filter === null) {
         $filter = new MessageFilter($headersOnly);
     }
     $sqlQuery = $filter->getSQL();
     if ($pager !== null) {
         $this->query = $pager->executePagedSQL($sqlQuery, $cacheMinutes);
     } else {
         $this->query->exec($sqlQuery, $cacheMinutes);
     }
     $messages = array();
     if ($this->query->countRecords()) {
         foreach ($this->query->fetchRecords() as $message) {
             $messages[] = new Message();
             $i = count($messages) - 1;
             $messages[$i]->setId($message["id"]);
             $messages[$i]->read = $message["read"];
             $messages[$i]->sender = $message["sender"];
             $messages[$i]->subject = $message["subject"];
             $messages[$i]->date = date(DEFAULT_DATETIME_FORMAT, $message["date"]);
             $messages[$i]->deleted = $message["deleted"];
             $messages[$i]->trashed = $message["trashed"];
             $messages[$i]->receivers = $this->getReceivers($messages[$i], $cacheMinutes);
             if (!$headersOnly) {
                 $messages[$i]->message = $message["message"];
             }
         }
     }
     return $messages;
 }
예제 #2
0
 function getLocale()
 {
     $locale = array_shift(MessageFilter::getLocales());
     return empty($locale) ? DEFAULT_LOCALE : $locale;
 }