parent(); if ($parent->album_cover_item_id == $source->id) { if ($parent->children_count() > 1) { foreach ($parent->children(2) as $child) { if ($child->id != $source->id) { $new_cover_item = $child; break; } } item::make_album_cover($new_cover_item); } else { item::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) { item::make_album_cover($source); } } static function make_album_cover($item) { $parent = $item->parent(); access::required("edit", $parent); model_cache::clear("item", $parent->album_cover_item_id); $parent->album_cover_item_id = $item->is_album() ? $item->album_cover_item_id : $item->id; $parent->thumb_dirty = 1; $parent->save(); graphics::generate($parent); $grand_parent = $parent->parent(); if ($grand_parent && $grand_parent->album_cover_item_id == null) { item::make_album_cover($parent); } } static function remove_album_cover($album) { access::required("edit", $album); @unlink($album->thumb_path()); model_cache::clear("item", $album->album_cover_item_id) ; $album->album_cover_item_id = null; $album->thumb_width = 0; $album->thumb_height = 0; $album->thumb_dirty = 1; $album->save(); graphics::generate($album); } static function validate_no_slashes($input) { if (strpos($input->value, "/") !== false) { $input->add_error("no_slashes", 1); } } static function validate_no_trailing_period($input) { if (rtrim($input->value, ".") !== $input->value) { $input->add_error("no_trailing_period", 1); } } }