forked from Public/pics
Asset: delete thumbnails when deleting an assets
This commit is contained in:
parent
3f66fce262
commit
29bf6af1f8
@ -490,9 +490,7 @@ class Asset
|
|||||||
{
|
{
|
||||||
$db = Registry::get('db');
|
$db = Registry::get('db');
|
||||||
|
|
||||||
if (!unlink(ASSETSDIR . '/' . $this->subdir . '/' . $this->filename))
|
// First: delete associated metadata
|
||||||
return false;
|
|
||||||
|
|
||||||
$db->query('
|
$db->query('
|
||||||
DELETE FROM assets_meta
|
DELETE FROM assets_meta
|
||||||
WHERE id_asset = {int:id_asset}',
|
WHERE id_asset = {int:id_asset}',
|
||||||
@ -500,6 +498,7 @@ class Asset
|
|||||||
'id_asset' => $this->id_asset,
|
'id_asset' => $this->id_asset,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// Second: figure out what tags to recount cardinality for
|
||||||
$recount_tags = $db->queryValues('
|
$recount_tags = $db->queryValues('
|
||||||
SELECT id_tag
|
SELECT id_tag
|
||||||
FROM assets_tags
|
FROM assets_tags
|
||||||
@ -517,13 +516,30 @@ class Asset
|
|||||||
|
|
||||||
Tag::recount($recount_tags);
|
Tag::recount($recount_tags);
|
||||||
|
|
||||||
$return = $db->query('
|
// Third: figure out what associated thumbs to delete
|
||||||
DELETE FROM assets
|
$thumbs_to_delete = $db->queryValues('
|
||||||
|
SELECT filename
|
||||||
|
FROM assets_thumbs
|
||||||
WHERE id_asset = {int:id_asset}',
|
WHERE id_asset = {int:id_asset}',
|
||||||
[
|
[
|
||||||
'id_asset' => $this->id_asset,
|
'id_asset' => $this->id_asset,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
foreach ($thumbs_to_delete as $filename)
|
||||||
|
{
|
||||||
|
$thumb_path = THUMBSDIR . '/' . $this->subdir . '/' . $filename;
|
||||||
|
if (is_file($thumb_path))
|
||||||
|
unlink($thumb_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->query('
|
||||||
|
DELETE FROM assets_thumbs
|
||||||
|
WHERE id_asset = {int:id_asset}',
|
||||||
|
[
|
||||||
|
'id_asset' => $this->id_asset,
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Reset asset ID for tags that use this asset for their thumbnail
|
||||||
$rows = $db->query('
|
$rows = $db->query('
|
||||||
SELECT id_tag
|
SELECT id_tag
|
||||||
FROM tags
|
FROM tags
|
||||||
@ -541,6 +557,17 @@ class Asset
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Finally, delete the actual asset
|
||||||
|
if (!unlink(ASSETSDIR . '/' . $this->subdir . '/' . $this->filename))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$return = $db->query('
|
||||||
|
DELETE FROM assets
|
||||||
|
WHERE id_asset = {int:id_asset}',
|
||||||
|
[
|
||||||
|
'id_asset' => $this->id_asset,
|
||||||
|
]);
|
||||||
|
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user