X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fthreads.php;h=494fbe1ce33a0ccdecd127e13d52a0efa50c4e0b;hb=b0025745909b527127c7dd09fea0f9920158b595;hp=8e58a04b3104896842eba2907cc636fe00886b7a;hpb=8d4736c942b9ccfc3473264684d6ccd1081c428c;p=friendica.git diff --git a/include/threads.php b/include/threads.php index 8e58a04b31..494fbe1ce3 100644 --- a/include/threads.php +++ b/include/threads.php @@ -2,6 +2,8 @@ use Friendica\App; use Friendica\Core\System; +use Friendica\Database\DBM; +use Friendica\Model\Contact; function add_thread($itemid, $onlyshadow = false) { $items = q("SELECT `uid`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, @@ -32,10 +34,10 @@ function add_thread($itemid, $onlyshadow = false) { * @param integer $itemid Item ID that should be added */ function add_shadow_thread($itemid) { - $items = q("SELECT `uid`, `wall`, `private`, `moderated`, `visible`, `contact-id`, `deleted`, `network` + $items = q("SELECT `uid`, `wall`, `private`, `moderated`, `visible`, `contact-id`, `deleted`, `network`, `author-id`, `owner-id` FROM `item` WHERE `id` = %d AND (`parent` = %d OR `parent` = 0) LIMIT 1", intval($itemid), intval($itemid)); - if (!dbm::is_result($items)) { + if (!DBM::is_result($items)) { return; } @@ -56,13 +58,18 @@ function add_shadow_thread($itemid) { return; } + // Is the public contact configured as hidden? + if (Contact::isHidden($item["owner-id"]) || Contact::isHidden($item["author-id"])) { + return; + } + // Only do these checks if the post isn't a wall post if (!$item["wall"]) { // Check, if hide-friends is activated - then don't do a shadow entry $r = q("SELECT `hide-friends` FROM `profile` WHERE `is-default` AND `uid` = %d AND NOT `hide-friends`", $item['uid']); - if (!dbm::is_result($r)) { + if (!DBM::is_result($r)) { return; } @@ -70,14 +77,14 @@ function add_shadow_thread($itemid) { $r = q("SELECT `id` FROM `contact` WHERE NOT `hidden` AND NOT `blocked` AND `id` = %d", $item['contact-id']); - if (!dbm::is_result($r)) { + if (!DBM::is_result($r)) { return; } } // Only add a shadow, if the profile isn't hidden $r = q("SELECT `uid` FROM `user` where `uid` = %d AND NOT `hidewall`", $item['uid']); - if (!dbm::is_result($r)) { + if (!DBM::is_result($r)) { return; } @@ -89,16 +96,15 @@ function add_shadow_thread($itemid) { $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item['uri'])); - if (!dbm::is_result($r)) { + if (!DBM::is_result($r)) { // Preparing public shadow (removing user specific data) require_once("include/items.php"); - require_once("include/Contact.php"); unset($item[0]['id']); $item[0]['uid'] = 0; $item[0]['origin'] = 0; $item[0]['wall'] = 0; - $item[0]['contact-id'] = get_contact($item[0]['author-link'], 0); + $item[0]['contact-id'] = Contact::getIdForURL($item[0]['author-link'], 0); if (in_array($item[0]['type'], array("net-comment", "wall-comment"))) { $item[0]['type'] = 'remote-comment'; @@ -124,7 +130,7 @@ function add_shadow_entry($itemid) { $items = q("SELECT * FROM `item` WHERE `id` = %d", intval($itemid)); - if (!dbm::is_result($items)) { + if (!DBM::is_result($items)) { return; } @@ -142,23 +148,22 @@ function add_shadow_entry($itemid) { // Is there a shadow parent? $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item['parent-uri'])); - if (!dbm::is_result($r)) + if (!DBM::is_result($r)) return; // Is there already a shadow entry? $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item['uri'])); - if (dbm::is_result($r)) + if (DBM::is_result($r)) return; // Preparing public shadow (removing user specific data) require_once("include/items.php"); - require_once("include/Contact.php"); unset($item['id']); $item['uid'] = 0; $item['origin'] = 0; $item['wall'] = 0; - $item['contact-id'] = get_contact($item['author-link'], 0); + $item['contact-id'] = Contact::getIdForURL($item['author-link'], 0); if (in_array($item['type'], array("net-comment", "wall-comment"))) { $item['type'] = 'remote-comment'; @@ -174,7 +179,7 @@ function add_shadow_entry($itemid) { function update_thread_uri($itemuri, $uid) { $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); - if (dbm::is_result($messages)) { + if (DBM::is_result($messages)) { foreach ($messages as $message) { update_thread($message["id"]); } @@ -185,7 +190,7 @@ function update_thread($itemid, $setmention = false) { $items = q("SELECT `uid`, `guid`, `title`, `body`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`, `gcontact-id`, `deleted`, `origin`, `forum_mode`, `network`, `rendered-html`, `rendered-hash` FROM `item` WHERE `id` = %d AND (`parent` = %d OR `parent` = 0) LIMIT 1", intval($itemid), intval($itemid)); - if (!dbm::is_result($items)) { + if (!DBM::is_result($items)) { return; } @@ -213,7 +218,7 @@ 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 (!dbm::is_result($items)) { + if (!DBM::is_result($items)) { return; } @@ -230,7 +235,7 @@ 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 (dbm::is_result($messages)) { + if (DBM::is_result($messages)) { foreach ($messages as $message) { delete_thread($message["id"], $itemuri); } @@ -240,8 +245,13 @@ function delete_thread_uri($itemuri, $uid) { function delete_thread($itemid, $itemuri = "") { $item = q("SELECT `uid` 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 = q("DELETE FROM `thread` WHERE `iid` = %d", intval($itemid)); + $result = dba::e("DELETE FROM `thread` WHERE `iid` = ?", $itemid); logger("delete_thread: Deleted thread for item ".$itemid." - ".print_r($result, true), LOGGER_DEBUG); @@ -250,7 +260,7 @@ function delete_thread($itemid, $itemuri = "") { dbesc($itemuri), intval($item["uid"]) ); - if (!dbm::is_result($r)) { + if (!DBM::is_result($r)) { dba::delete('item', array('uri' => $itemuri, 'uid' => 0)); logger("delete_thread: Deleted shadow for item ".$itemuri, LOGGER_DEBUG); }