]> git.mxchange.org Git - friendica.git/commitdiff
fix last-child in face of deletions
authorMike Macgirvin <mike@macgirvin.com>
Mon, 30 Aug 2010 04:55:57 +0000 (21:55 -0700)
committerMike Macgirvin <mike@macgirvin.com>
Mon, 30 Aug 2010 04:55:57 +0000 (21:55 -0700)
include/poller.php
mod/dfrn_notify.php
mod/item.php

index 80b6f35129b27560ebf66bb557b2acdc8470e653..f771a3af4bd2eb14ae2546d8ded1aaa36b9f40fd 100644 (file)
@@ -190,13 +190,14 @@ echo "Length:" . strlen($xml) . "\r\n";
                                        intval($importer['uid'])
                                );
                                if(count($r)) {
-                                       if($r[0]['uri'] == $r[0]['parent-uri']) {
+                                       $item = $r[0];
+                                       if($item['uri'] == $item['parent-uri']) {
                                                $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
                                                        `body` = '', `title` = ''
                                                        WHERE `parent-uri` = '%s'",
                                                        dbesc($when),
                                                        dbesc(datetime_convert()),
-                                                       dbesc($r[0]['uri'])
+                                                       dbesc($item['uri'])
                                                );
                                        }
                                        else {
@@ -208,6 +209,24 @@ echo "Length:" . strlen($xml) . "\r\n";
                                                        dbesc($uri),
                                                        intval($importer['uid'])
                                                );
+                                               if($item['last-child']) {
+                                                       // ensure that last-child is set in case the comment that had it just got wiped.
+                                                       $q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
+                                                               dbesc(datetime_convert()),
+                                                               dbesc($item['parent-uri']),
+                                                               intval($item['uid'])
+                                                       );
+                                                       // who is the last child now? 
+                                                       $r = q("SELECT `id` FROM `item` WHERE `parent-uri` = '%s' AND `type` != 'activity' AND `deleted` = 0 
+                                                               ORDER BY `edited` DESC LIMIT 1",
+                                                                       dbesc($item['parent-uri'])
+                                                       );
+                                                       if(count($r)) {
+                                                               q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
+                                                                       intval($r[0]['id'])
+                                                               );
+                                                       }
+                                               }       
                                        }
                                }       
                                continue;
index 089e508ad3feee2d4bf91e0706c71c6e6d85acbc..3e98377e88b4653a684e58101c0535961fae1dc7 100644 (file)
@@ -123,12 +123,13 @@ function dfrn_notify_post(&$a) {
                                intval($importer['importer_uid'])
                        );
                        if(count($r)) {
-                               if($r[0]['uri'] == $r[0]['parent-uri']) {
+                               $item = $r[0];
+                               if($item['uri'] == $item['parent-uri']) {
                                        $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s'
                                                WHERE `parent-uri` = '%s'",
                                                dbesc($when),
                                                dbesc(datetime_convert()),
-                                               dbesc($r[0]['uri'])
+                                               dbesc($item['uri'])
                                        );
                                }
                                else {
@@ -139,6 +140,24 @@ function dfrn_notify_post(&$a) {
                                                dbesc($uri),
                                                intval($importer['importer_uid'])
                                        );
+                                       if($item['last-child']) {
+                                               // ensure that last-child is set in case the comment that had it just got wiped.
+                                               $q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
+                                                       dbesc(datetime_convert()),
+                                                       dbesc($item['parent-uri']),
+                                                       intval($item['uid'])
+                                               );
+                                               // who is the last child now? 
+                                               $r = q("SELECT `id` FROM `item` WHERE `parent-uri` = '%s' AND `type` != 'activity' AND `deleted` = 0 
+                                                       ORDER BY `edited` DESC LIMIT 1",
+                                                               dbesc($item['parent-uri'])
+                                               );
+                                               if(count($r)) {
+                                                       q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
+                                                               intval($r[0]['id'])
+                                                       );
+                                               }       
+                                       }
                                }
                        }       
                        continue;
index 812216426b391be2b6d0106c6cc5a30e11744fcc..c790d31dac0f281a5fcf6c61b5a93b0441e1fb27 100644 (file)
@@ -313,7 +313,23 @@ function item_content(&$a) {
                                );
                                // ignore the result
                        }
-
+                       else {
+                               // ensure that last-child is set in case the comment that had it just got wiped.
+                               q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
+                                       dbesc(datetime_convert()),
+                                       dbesc($item['parent-uri']),
+                                       intval($item['uid'])
+                               );
+                               // who is the last child now? 
+                               $r = q("SELECT `id` FROM `item` WHERE `parent-uri` = '%s' AND `type` != 'activity' AND `deleted` = 0 ORDER BY `edited` DESC LIMIT 1",
+                                       dbesc($item['parent-uri'])
+                               );
+                               if(count($r)) {
+                                       q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
+                                               intval($r[0]['id'])
+                                       );
+                               }       
+                       }
                        $drop_id = intval($item['id']);
                        $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');