private function buildPlaylist(Channel $channel) { $em = $this->getDoctrine()->getManager(); $channelName = $channel->getName(); $items = $em->getRepository('AppBundle:ScheduleItem')->findBy(array('channel' => $channel), array('sequence' => 'ASC')); //->findByChannel($channel); $playlist = array(); //need to think about the ordering and include items from inherited channel. if ($channel->getInherits()) { $masterItems = $em->getRepository('AppBundle:ScheduleItem')->findBy(array('channel' => $channel->getInherits()), array('sequence' => 'ASC')); //->findByChannel($channel->getInherits()); //$items = array_merge($items, $masterItems); $items = $this->array_mix($masterItems, $items); } $i = 0; foreach ($items as $item) { $helper = $this->container->get('vich_uploader.templating.helper.uploader_helper'); $path = $helper->asset($item->getAsset(), 'uriFile'); $url = $this->get('liip_imagine.cache.manager')->getBrowserPath($path, '1080'); $webPath = $this->get('kernel')->getRootDir() . '/../web' . $this->getRequest()->getBasePath(); $playlist[$i]['uri'] = $item->getAsset()->getUri(); $playlist[$i]['type'] = $item->getAsset()->getMimeType(); $playlist[$i]['url'] = $url; $playlist[$i]['start'] = $item->getStart()->format('c'); $playlist[$i]['stop'] = $item->getStop()->format('c'); $playlist[$i]['duration'] = $item->getDuration() ? $item->getDuration() : $channel->getDuration(); //$playlist[$i]['hash'] = md5_file("$webPath$path"); $i++; } $data = array('meta' => array('id' => $channel->getId(), 'name' => $channel->getName()), 'playlist' => $playlist); return $data; }