/** * Generic function to merge two albums * * @param int $primary_album_id * @param int $secondary_album_id * * @return int/bool */ function merge($primary_album_id, $secondary_album_id) { add_filter('rt_db_model_per_page', array($this, 'set_queries_per_page'), 10, 2); $page = 1; /** * Transfer all the media from secondary album to primary album */ while ($media = $this->media->model->get_by_album_id($secondary_album_id, $page)) { $media_id = $media['result'][0]['media_id']; $this->media->move($media_id, $primary_album_id); $page++; } $author = $this->get_current_author(); $admins = get_super_admins(); $global_albums = self::get_globals(); if (in_array(intval($secondary_album_id), array_map('intval', $global_albums), true)) { if (in_array($author, array_map('intval', $admins), true)) { $this->delete_global($secondary_album_id); } else { return false; } } else { $this->delete($secondary_album_id); } return $primary_album_id; }