]> git.mxchange.org Git - friendica.git/blobdiff - include/message.php
Merge branch 'pull'
[friendica.git] / include / message.php
old mode 100644 (file)
new mode 100755 (executable)
index 05157cc..7ad80ae
@@ -5,6 +5,7 @@
 
 
 function send_message($recipient=0, $body='', $subject='', $replyto=''){ 
+
        $a = get_app();
 
        if(! $recipient) return -1;
@@ -27,8 +28,25 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
        $hash = random_string();
        $uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $hash ;
 
-       if(! strlen($replyto)) {
-               $replyto = $uri;
+       $convid = 0;
+       $reply = false;
+
+       // look for any existing conversation structure
+
+       if(strlen($replyto)) {
+               $reply = true;
+               $r = q("select convid from mail where uid = %d and ( uri = '%s' or `parent-uri` = '%s' ) limit 1",
+                       intval(local_user()),
+                       dbesc($replyto),
+                       dbesc($replyto)
+               );
+               if(count($r))
+                       $convid = $r[0]['convid'];
+       }               
+
+       if(! $convid) {
+
+               // create a new conversation
 
                $conv_guid = get_guid();
 
@@ -40,11 +58,16 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 
                $handles = $recip_handle . ';' . $sender_handle;
 
-               $r = q("insert into conv (uid,guid,recips) values (%d, '%s', '%s') ",
+               $r = q("insert into conv (uid,guid,creator,created,updated,subject,recips) values(%d, '%s', '%s', '%s', '%s', '%s', '%s') ",
                        intval(local_user()),
                        dbesc($conv_guid),
+                       dbesc($sender_handle),
+                       dbesc(datetime_convert()),
+                       dbesc(datetime_convert()),
+                       dbesc($subject),
                        dbesc($handles)
                );
+
                $r = q("select * from conv where guid = '%s' and uid = %d limit 1",
                        dbesc($conv_guid),
                        intval(local_user())
@@ -52,24 +75,22 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
                if(count($r))
                        $convid = $r[0]['id'];
        }
-       else {
-               $r = q("select convid from mail where uid = %d and uri = '%s' limit 1",
-                       intval(local_user()),
-                       dbesc($replyto)
-               );
-               if(count($r))
-                       $convid = $r[0]['convid'];
-       }               
 
        if(! $convid) {
                logger('send message: conversation not found.');
                return -4;
        }
 
-       $r = q("INSERT INTO `mail` ( `uid`, `convid`, `from-name`, `from-photo`, `from-url`, 
-               `contact-id`, `title`, `body`, `seen`, `replied`, `uri`, `parent-uri`, `created`)
-               VALUES ( %d, %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, '%s', '%s', '%s' )",
+       if(! strlen($replyto)) {
+               $replyto = $uri;
+       }
+
+
+       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`, 
+               `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`)
+               VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s' )",
                intval(local_user()),
+               dbesc(get_guid()),
                intval($convid),
                dbesc($me[0]['name']),
                dbesc($me[0]['thumb']),
@@ -78,11 +99,14 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
                dbesc($subject),
                dbesc($body),
                1,
+               intval($reply),
                0,
                dbesc($uri),
                dbesc($replyto),
                datetime_convert()
        );
+
+
        $r = q("SELECT * FROM `mail` WHERE `uri` = '%s' and `uid` = %d LIMIT 1",
                dbesc($uri),
                intval(local_user())