/**
* Remove items above the limit on playlist.
*
* @param Playlist $playlist
*/
public function removeLeftItems($playlist)
{
if ($playlist->getMaxItems() != null) {
$allowedArticles = $this->em->createQuery('SELECT pa.id FROM Newscoop\\Entity\\PlaylistArticle pa WHERE pa.idPlaylist = :playlistId AND pa.order >= 0 ORDER BY pa.order ASC')->setParameter('playlistId', $playlist->getId())->setMaxResults($playlist->getMaxItems())->getArrayResult();
$ids = array();
foreach ($allowedArticles as $article) {
$ids[] = $article['id'];
}
$this->em->createQuery('DELETE FROM Newscoop\\Entity\\PlaylistArticle pa WHERE pa.id NOT IN (:ids) AND pa.idPlaylist = :playlistId')->setParameter('ids', $ids)->setParameter('playlistId', $playlist->getId())->execute();
}
}