/** * @param \Sonata\MediaBundle\Model\GalleryInterface $gallery * @param \Sonata\MediaBundle\Model\MediaInterface $media * @return void */ public function addMedia(GalleryInterface $gallery, MediaInterface $media) { $galleryHasMedia = new \Application\Sonata\MediaBundle\Entity\GalleryHasMedia(); $galleryHasMedia->setMedia($media); $galleryHasMedia->setPosition(count($gallery->getGalleryHasMedias()) + 1); $galleryHasMedia->setEnabled(true); $gallery->addGalleryHasMedias($galleryHasMedia); }
/** * Write a GalleryHasMedia, this method is used by both POST and PUT action methods. * * @param GalleryInterface $gallery * @param MediaInterface $media * @param GalleryHasMediaInterface $galleryHasMedia * @param Request $request * * @return FOSRestView|\Symfony\Component\Form\FormInterface */ protected function handleWriteGalleryhasmedia(GalleryInterface $gallery, MediaInterface $media, GalleryHasMediaInterface $galleryHasMedia = null, Request $request) { $form = $this->formFactory->createNamed(null, 'sonata_media_api_form_gallery_has_media', $galleryHasMedia, array('csrf_protection' => false)); $form->bind($request); if ($form->isValid()) { $galleryHasMedia = $form->getData(); $galleryHasMedia->setMedia($media); $gallery->addGalleryHasMedias($galleryHasMedia); $this->galleryManager->save($gallery); $view = FOSRestView::create($galleryHasMedia); $serializationContext = SerializationContext::create(); $serializationContext->setGroups(array('sonata_api_read')); $serializationContext->enableMaxDepthChecks(); $view->setSerializationContext($serializationContext); return $view; } return $form; }
/** * @param \Sonata\MediaBundle\Model\GalleryInterface $gallery * * @return array */ private function buildElements(GalleryInterface $gallery) { $elements = array(); foreach ($gallery->getGalleryHasMedias() as $galleryHasMedia) { if (!$galleryHasMedia->getEnabled()) { continue; } $type = $this->getMediaType($galleryHasMedia->getMedia()); if (!$type) { continue; } $elements[] = array('title' => $galleryHasMedia->getMedia()->getName(), 'caption' => $galleryHasMedia->getMedia()->getDescription(), 'type' => $type, 'media' => $galleryHasMedia->getMedia()); } return $elements; }
/** * @param MediaInterface $media * @param GalleryInterface $gallery */ protected function addMediaToGallery(MediaInterface $media, GalleryInterface $gallery) { $galleryHasMedia = new GalleryHasMedia(); $galleryHasMedia->setMedia($media); $galleryHasMedia->setPosition(count($gallery->getGalleryHasMedias()) + 1); $galleryHasMedia->setEnabled(true); $gallery->addGalleryHasMedias($galleryHasMedia); }