예제 #1
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;
 }