Preparation for new deletion functionality

This commit is contained in:
Michael 2018-05-26 20:23:49 +00:00
parent a6396dde55
commit 708ddf2b02

View file

@ -92,12 +92,13 @@ class Item extends BaseObject
* *
* @param array $condition The condition for finding the item entries * @param array $condition The condition for finding the item entries
* @param integer $priority Priority for the notification * @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); $items = dba::select('item', ['id'], $condition);
while ($item = dba::fetch($items)) { while ($item = dba::fetch($items)) {
self::deleteById($item['id'], $priority); self::deleteById($item['id'], $priority, $uid);
} }
dba::close($items); dba::close($items);
} }
@ -107,10 +108,11 @@ class Item extends BaseObject
* *
* @param integer $item_id Item ID that should be delete * @param integer $item_id Item ID that should be delete
* @param integer $priority Priority for the notification * @param integer $priority Priority for the notification
* @param integer $uid User who wants to delete the item
* *
* @return boolean success * @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 // locate item to be deleted
$fields = ['id', 'uri', 'uid', 'parent', 'parent-uri', 'origin', $fields = ['id', 'uri', 'uid', 'parent', 'parent-uri', 'origin',
@ -132,6 +134,12 @@ class Item extends BaseObject
$parent = ['origin' => false]; $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 // clean up categories and tags so they don't end up as orphans
$matches = false; $matches = false;