From 708ddf2b02cfde465169d533a2c04200fb9eec15 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 26 May 2018 20:23:49 +0000 Subject: [PATCH] Preparation for new deletion functionality --- src/Model/Item.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Model/Item.php b/src/Model/Item.php index 6effb393a2..ea866152bb 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -92,12 +92,13 @@ class Item extends BaseObject * * @param array $condition The condition for finding the item entries * @param integer $priority Priority for the notification + * @param integer $uid User who wants to delete the item */ - public static function delete($condition, $priority = PRIORITY_HIGH) + public static function delete($condition, $priority = PRIORITY_HIGH, $uid = 0) { $items = dba::select('item', ['id'], $condition); while ($item = dba::fetch($items)) { - self::deleteById($item['id'], $priority); + self::deleteById($item['id'], $priority, $uid); } dba::close($items); } @@ -107,10 +108,11 @@ class Item extends BaseObject * * @param integer $item_id Item ID that should be delete * @param integer $priority Priority for the notification + * @param integer $uid User who wants to delete the item * * @return boolean success */ - public static function deleteById($item_id, $priority = PRIORITY_HIGH) + public static function deleteById($item_id, $priority = PRIORITY_HIGH, $uid = 0) { // locate item to be deleted $fields = ['id', 'uri', 'uid', 'parent', 'parent-uri', 'origin', @@ -132,6 +134,12 @@ class Item extends BaseObject $parent = ['origin' => false]; } + // "Deleting" global items just means hiding them + if (($item['uid'] == 0) && ($uid != 0)) { + dba::update('user-item', ['hidden' => true], ['iid' => $item_id, 'uid' => $uid], true); + return true; + } + // clean up categories and tags so they don't end up as orphans $matches = false;