예제 #1
0
 /**
  * log  messages to DB
  *
  * @access public
  *
  * @param   $user_id - id of the owner of the spool
  * @param   $msgs_ar - array of messages id to log
  *
  * @return  an AMA_Error object if something goes wrong
  *
  **/
 public function log_messages($user_id, $msgs_ar)
 {
     // logger("entered MessageHandler::log_messages - ".
     //       "[user_id=$user_id, msgs_ar=".serialize($msgs_ar)."]", 3);
     $spool = new Spool($user_id, $this->dsn);
     if (count($msgs_ar)) {
         foreach ($msgs_ar as $message_id) {
             $msg_Ha = get_message_info($message_id);
             $res = $spool->log_message($msg_Ha);
         }
         // FIXME: qui gestione errore non e' a posto.
         if (AMA_DataHandler::isError($res)) {
             return new AMA_Error(AMA_ERR_ADD);
         }
     }
 }
예제 #2
0
 private function &new_find_messages($last_read_message_id)
 {
     $id_group = $this->id_chatroom;
     $type = $this->type;
     $user_id = $this->user_id;
     $db =& parent::getConnection();
     if (AMA_DB::isError($db)) {
         return $db;
     }
     if ($last_read_message_id == 0) {
         $message_id_sql = '';
     } else {
         $message_id_sql = ' AND id_messaggio > ' . $last_read_message_id;
     }
     if ($type == ADA_MSG_CHAT) {
         $sql = "SELECT U.nome, M.id_messaggio, M.data_ora, M.tipo, M.testo\n                       FROM  (SELECT id_messaggio, data_ora, tipo, id_mittente, testo FROM messaggi\n                               WHERE id_group={$id_group} {$message_id_sql} AND tipo='{$type}') AS M\n                             LEFT JOIN utente AS U ON (U.id_utente = M.id_mittente)";
     } elseif ($type == ADA_MSG_PRV_CHAT) {
         $user = $this->user_id;
         $sql = "SELECT U.nome, M.id_messaggio, M.data_ora, M.tipo, M.testo\n                  FROM (SELECT id_messaggio, data_ora, tipo, id_mittente, testo FROM messaggi\n                             WHERE id_group={$id_group} {$message_id_sql} AND tipo='{$type}') AS M\n                           LEFT JOIN utente AS U ON (U.id_utente = M.id_mittente)\n                           LEFT JOIN\n                           (SELECT id_messaggio FROM destinatari_messaggi WHERE id_utente={$user_id}) AS PM\n                           ON (M.id_messaggio=PM.id_messaggio)\n            ";
     }
     $result = $db->getAll($sql, null, AMA_FETCH_ASSOC);
     if (AMA_DataHandler::isError($result)) {
         return new AMA_Error(AMA_ERR_GET);
     }
     return $result;
 }