/** * @Route("/show/{uniqID}/{page}.{_format}", name="oktothek_show_playlist", requirements={"page": "\d+"}, defaults={"page": 1, "_format": "html"}) * @ ParamConverter("playlist", class="MediaBundle:Playlist", options={"mapping": {"playlist": "uniqID"}}) * @Template() */ public function showAction(Playlist $playlist, $page) { return ['playlist' => $playlist]; $em = $this->getDoctrine()->getManager(); $dql = "SELECT i FROM MediaBundle:Playlistitems i JOIN i.episode WHERE i.playlist = :playlist"; $query = $em->createQuery($dql); $query->setParameter('playlist', $playlist->getId()); $paginator = $this->get('knp_paginator'); $items = $paginator->paginate($query, $page, 10); return ['playlist' => $playlist, 'items' => $items]; }
public function playlistDuration(Playlist $playlist) { return $this->durationCalculator->calculate($playlist->getId()); }
/** * @ParamConverter("playlist", class="AppBundle:Playlist", options={"repository_method" = "withTracks"}) * @Cache(public=true, smaxage="86400") */ public function tracksListAction(Playlist $playlist) { return $this->render('playlists/tracks-list.html.twig', ['playlistId' => $playlist->getId(), 'tracks' => $playlist->getTracks()]); }