X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fthreads.php;h=61bc5292ff7621fba0c3f96d653d6c4ae8794db8;hb=c4d3ab68785122ff070c65a444aaa0833b746b2b;hp=7a6305f85b02f2ffc14ab40e4edeb81e846092a9;hpb=de5a0dadb0715198b9ba376e4ab79f58cedef098;p=friendica.git diff --git a/include/threads.php b/include/threads.php index 7a6305f85b..61bc5292ff 100644 --- a/include/threads.php +++ b/include/threads.php @@ -1,6 +1,6 @@ $data) - if (!in_array($field, array("guid", "title", "body", "rendered-html", "rendered-hash"))) { - if ($sql != "") + if (!in_array($field, ["guid", "title", "body", "rendered-html", "rendered-hash"])) { + if ($sql != "") { $sql .= ", "; + } $sql .= "`".$field."` = '".dbesc($data)."'"; } @@ -211,8 +63,9 @@ function update_thread($itemid, $setmention = false) { // Updating a shadow item entry $items = q("SELECT `id` FROM `item` WHERE `guid` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item["guid"])); - if (!$items) + if (!DBM::is_result($items)) { return; + } $result = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `rendered-html` = '%s', `rendered-hash` = '%s' WHERE `id` = %d", dbesc($item["title"]), @@ -227,70 +80,34 @@ function update_thread($itemid, $setmention = false) { function delete_thread_uri($itemuri, $uid) { $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); - if(count($messages)) - foreach ($messages as $message) + if (DBM::is_result($messages)) { + foreach ($messages as $message) { delete_thread($message["id"], $itemuri); + } + } } function delete_thread($itemid, $itemuri = "") { $item = q("SELECT `uid` FROM `thread` WHERE `iid` = %d", intval($itemid)); - $result = q("DELETE FROM `thread` WHERE `iid` = %d", intval($itemid)); + if (!DBM::is_result($item)) { + logger('No thread found for id '.$itemid, LOGGER_DEBUG); + return; + } + + // Using dba::delete at this time could delete the associated item entries + $result = dba::e("DELETE FROM `thread` WHERE `iid` = ?", $itemid); logger("delete_thread: Deleted thread for item ".$itemid." - ".print_r($result, true), LOGGER_DEBUG); if ($itemuri != "") { - $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND NOT (`uid` IN (%d, 0))", + $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND NOT `deleted` AND NOT (`uid` IN (%d, 0))", dbesc($itemuri), intval($item["uid"]) ); - if (!dbm::is_result($r)) { - dba::delete('item', array('uri' => $itemuri, 'uid' => 0)); - logger("delete_thread: Deleted shadow for item ".$itemuri." - ".print_r($result, true), LOGGER_DEBUG); + if (!DBM::is_result($r)) { + dba::delete('item', ['uri' => $itemuri, 'uid' => 0]); + logger("delete_thread: Deleted shadow for item ".$itemuri, LOGGER_DEBUG); } } } - -function update_threads() { - logger("update_threads: start"); - - $messages = dba::p("SELECT `id` FROM `item` WHERE `id` = `parent`"); - - logger("update_threads: fetched messages: ".dba::num_rows($messages)); - - while ($message = dba::fetch($messages)) { - add_thread($message["id"]); - add_shadow_thread($message["id"]); - } - dba::close($messages); -} - -function update_threads_mention() { - $users = q("SELECT `uid`, `nickname` FROM `user` ORDER BY `uid`"); - - foreach ($users AS $user) { - $self = normalise_link(App::get_baseurl() . '/profile/' . $user['nickname']); - $selfhttps = str_replace("http://", "https://", $self); - $parents = q("SELECT DISTINCT(`parent`) FROM `item` WHERE `uid` = %d AND - ((`owner-link` IN ('%s', '%s')) OR (`author-link` IN ('%s', '%s')))", - $user["uid"], $self, $selfhttps, $self, $selfhttps); - - foreach ($parents AS $parent) - q("UPDATE `thread` SET `mention` = 1 WHERE `iid` = %d", $parent["parent"]); - } -} - - -function update_shadow_copy() { - logger("start"); - - $messages = dba::p("SELECT `iid` FROM `thread` WHERE `uid` != 0 AND `network` IN ('', ?, ?, ?) - AND `visible` AND NOT `deleted` AND NOT `moderated` AND NOT `private` ORDER BY `created`", - NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS); - - logger("fetched messages: ".dba::num_rows($messages)); - while ($message = dba::fetch($messages)) - add_shadow_thread($message["iid"]); - - dba::close($messages); -}