bug 1396: when a photo was deleted, the code to avoid orphans as category

representative was 1) wrong (because a photo doesn't have to belong to a
category to represent it) 2) at the wrong place.

git-svn-id: http://piwigo.org/svn/branches/2.0@4730 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2010-01-23 22:56:11 +00:00
parent ac0929fe84
commit bec299bc36
2 changed files with 14 additions and 12 deletions

View File

@@ -91,21 +91,9 @@ SELECT
if (count($deletables) > 0)
{
// what will be the categories to update? (to avoid orphan on
// representative_picture_id)
$query = '
SELECT
category_id
FROM '.IMAGE_CATEGORY_TABLE.'
WHERE image_id IN ('.implode(',', $deletables).')
;';
$categories_to_update = array_from_query($query, 'category_id');
$physical_deletion = true;
delete_elements($deletables, $physical_deletion);
update_category($categories_to_update);
array_push(
$page['infos'],
sprintf(

View File

@@ -234,6 +234,20 @@ DELETE FROM '.IMAGES_TABLE.'
;';
pwg_query($query);
// are the photo used as category representant?
$query = '
SELECT
id
FROM '.CATEGORIES_TABLE.'
WHERE representative_picture_id IN (
'.wordwrap(implode(', ', $ids), 80, "\n").')
;';
$category_ids = array_from_query($query, 'id');
if (count($category_ids) > 0)
{
update_category($category_ids);
}
trigger_action('delete_elements', $ids);
}