X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fthreads.php;h=3cfa02564036b4d38577da017a31ee48f1b243a7;hb=be70dde61f14514d31da090e44546ce021b0a60a;hp=bd0cb0489926df5bfb68f1be61e390d760e199da;hpb=b95d34f9dbb7dd46d059ebff36b38084ddcb2282;p=friendica.git diff --git a/include/threads.php b/include/threads.php index bd0cb04899..3cfa025640 100644 --- a/include/threads.php +++ b/include/threads.php @@ -19,10 +19,6 @@ function add_thread($itemid, $onlyshadow = false) { logger("add_thread: Add thread for item ".$itemid." - ".print_r($result, true), LOGGER_DEBUG); } - // Store a shadow copy of public items for displaying a global community page? - if (!get_config('system', 'global_community')) - return; - // is it already a copy? if (($itemid == 0) OR ($item['uid'] == 0)) return; @@ -78,6 +74,35 @@ function add_thread($itemid, $onlyshadow = false) { } } +function add_shadow_entry($item) { + + // Is this a shadow entry? + if ($item['uid'] == 0) + return; + + // Is there a shadow parent? + $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item['parent-uri'])); + if (!count($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 (count($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['contact-id'] = get_contact($item['author-link'], 0); + $public_shadow = item_store($item, false, false, true); + + logger("Stored public shadow for comment ".$item['uri']." under id ".$public_shadow, LOGGER_DEBUG); +} + function update_thread_uri($itemuri, $uid) { $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); @@ -87,7 +112,7 @@ function update_thread_uri($itemuri, $uid) { } function update_thread($itemid, $setmention = false) { - $items = q("SELECT `uid`, `uri`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`, + $items = q("SELECT `uid`, `guid`, `title`, `body`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`, `deleted`, `origin`, `forum_mode`, `network` FROM `item` WHERE `id` = %d AND (`parent` = %d OR `parent` = 0) LIMIT 1", intval($itemid), intval($itemid)); if (!$items) @@ -101,7 +126,7 @@ function update_thread($itemid, $setmention = false) { $sql = ""; foreach ($item AS $field => $data) - if ($field != "uri") { + if (!in_array($field, array("guid", "title", "body"))) { if ($sql != "") $sql .= ", "; @@ -110,40 +135,20 @@ function update_thread($itemid, $setmention = false) { $result = q("UPDATE `thread` SET ".$sql." WHERE `iid` = %d", intval($itemid)); - logger("update_thread: Update thread for item ".$itemid." - ".print_r($result, true)." ".print_r($item, true), LOGGER_DEBUG); + logger("Update thread for item ".$itemid." - guid ".$item["guid"]." - ".print_r($result, true)." ".print_r($item, true), LOGGER_DEBUG); // Updating a shadow item entry - $items = q("SELECT `id`, `title`, `body`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, - `moderated`, `visible`, `spam`, `starred`, `bookmark`, `deleted`, `origin`, `forum_mode`, `network` - FROM `item` WHERE `uri` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item["uri"])); + $items = q("SELECT `id` FROM `item` WHERE `guid` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item["guid"])); if (!$items) return; - $item = $items[0]; - - $result = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `network` = '%s' WHERE `id` = %d", + $result = q("UPDATE `item` SET `title` = '%s', `body` = '%s' WHERE `id` = %d", dbesc($item["title"]), dbesc($item["body"]), - dbesc($item["network"]), - intval($item["id"]) + intval($items[0]["id"]) ); - logger("update_thread: Updating public shadow for post ".$item["id"]." Result: ".print_r($result, true), LOGGER_DEBUG); - - /* - $sql = ""; - - foreach ($item AS $field => $data) - if ($field != "id") { - if ($sql != "") - $sql .= ", "; - - $sql .= "`".$field."` = '".dbesc($data)."'"; - } - //logger("update_thread: Updating public shadow for post ".$item["id"]." SQL: ".$sql, LOGGER_DEBUG); - $result = q("UPDATE `item` SET ".$sql." WHERE `id` = %d", intval($item["id"])); - logger("update_thread: Updating public shadow for post ".$item["id"]." Result: ".print_r($result, true), LOGGER_DEBUG); - */ + logger("Updating public shadow for post ".$items[0]["id"]." - guid ".$item["guid"]." Result: ".print_r($result, true), LOGGER_DEBUG); } function delete_thread_uri($itemuri, $uid) {