aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/msglib.php16
1 files changed, 6 insertions, 10 deletions
diff --git a/include/msglib.php b/include/msglib.php
index 2c9a9a696..f196e7bee 100644
--- a/include/msglib.php
+++ b/include/msglib.php
@@ -10,18 +10,14 @@ function msg_drop($message_id, $channel_id, $conv_guid) {
$channel_id
);
- // If it was a first message in thread
- $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d",
- $message_id,
+ // Get new first message...
+ $r = q("SELECT mid, parent_mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1",
+ $conv_guid,
$channel_id
);
- if (! $z) {
- // Get new first message...
- $r = q("SELECT mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1",
- $conv_guid,
- $channel_id
- );
- // ...and refer whole thread to it
+ // ...and if wasn't first before...
+ if ($r[0]['mid'] != $r[0]['parent_mid']) {
+ // ...refer whole thread to it
q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d",
dbesc($r[0]['mid']),
$conv_guid,