From d0ef6f2b08b73dd53bb1f6e5c408860f57921b32 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 21 Jul 2020 23:26:01 +0000 Subject: [PATCH] Store personal copy of public item upon commenting --- mod/item.php | 10 ++++++++++ src/Model/Item.php | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mod/item.php b/mod/item.php index e2d47ae2fa..c4d7231c22 100644 --- a/mod/item.php +++ b/mod/item.php @@ -136,6 +136,16 @@ function item_post(App $a) { throw new HTTPException\NotFoundException(DI::l10n()->t('Unable to locate original post.')); } + // When commenting on a public post then store the post for the current user + // This enables interaction like starring and saving into folders + if ($toplevel_item['uid'] == 0) { + $stored = Item::storeForUser($toplevel_item, local_user()); + Logger::info('Public item stored for user', ['uri-id' => $toplevel_item['uri-id'], 'uid' => $uid, 'stored' => $stored]); + if ($stored) { + $toplevel_item = Item::selectFirst([], ['id' => $stored]); + } + } + $toplevel_item_id = $toplevel_item['id']; $parent_user = $toplevel_item['uid']; diff --git a/src/Model/Item.php b/src/Model/Item.php index 860d9d73c9..afecc41162 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -2174,7 +2174,7 @@ class Item * @return integer stored item id * @throws \Exception */ - private static function storeForUser(array $item, int $uid) + public static function storeForUser(array $item, int $uid) { if (self::exists(['uri-id' => $item['uri-id'], 'uid' => $uid])) { Logger::info('Item already exists', ['uri-id' => $item['uri-id'], 'uid' => $uid]);