diff options
Diffstat (limited to 'core/helpers')
-rw-r--r-- | core/helpers/core.php | 36 | ||||
-rw-r--r-- | core/helpers/movie.php | 2 | ||||
-rw-r--r-- | core/helpers/photo.php | 2 |
3 files changed, 36 insertions, 4 deletions
diff --git a/core/helpers/core.php b/core/helpers/core.php index 4c73f148..944db71f 100644 --- a/core/helpers/core.php +++ b/core/helpers/core.php @@ -34,14 +34,46 @@ class core_Core { $parent = $source->parent(); if ($parent->album_cover_item_id == $source->id) { - $parent->remove_album_cover(); + if ($parent->children_count() > 1) { + foreach ($parent->children(2) as $child) { + if ($child->id != $source->id) { + $new_cover_item = $child; + break; + } + } + core::make_album_cover($new_cover_item); + } else { + core::remove_album_cover($parent); + } } $source->move_to($target); // If the target has no cover item, make this it. if ($target->album_cover_item_id == null) { - $source->make_album_cover(); + core::make_album_cover($source); } } + + function make_album_cover($item) { + $parent = $item->parent(); + access::required("edit", $parent); + + $parent->album_cover_item_id = $item->is_album() ? $item->album_cover_item_id : $item->id; + $parent->thumb_dirty = 1; + $parent->save(); + graphics::generate($parent); + } + + function remove_album_cover($album) { + access::required("edit", $album); + @unlink($album->thumb_path()); + + $album->album_cover_item_id = null; + $album->thumb_width = 0; + $album->thumb_height = 0; + $album->thumb_dirty = 1; + $album->save(); + graphics::generate($album); + } }
\ No newline at end of file diff --git a/core/helpers/movie.php b/core/helpers/movie.php index 6d4279c8..328429fe 100644 --- a/core/helpers/movie.php +++ b/core/helpers/movie.php @@ -94,7 +94,7 @@ class movie_Core { // If the parent has no cover item, make this it. if ($parent->album_cover_item_id == null) { - $movie->make_album_cover(); + core::make_album_cover($movie); } return $movie; diff --git a/core/helpers/photo.php b/core/helpers/photo.php index 199633af..0677b7e1 100644 --- a/core/helpers/photo.php +++ b/core/helpers/photo.php @@ -98,7 +98,7 @@ class photo_Core { // If the parent has no cover item, make this it. if ($parent->album_cover_item_id == null) { - $photo->make_album_cover(); + core::make_album_cover($photo); } return $photo; |