/** * Creates a new Lots entity. * */ public function createAction(Request $request) { $entity = new Lots(); $form = $this->createCreateForm($entity); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $user = $this->container->get('security.context')->getToken()->getUser(); $entity->setUser($user); $uploadedFiles = $request->files->get('myfile'); $numUploadedFiles = count($uploadedFiles); if ($numUploadedFiles > 0) { $tmp_gallery = new Gallery(); $mediaManager = $this->container->get('sonata.media.manager.media'); $uploadedFiles = $request->files->get('myfile'); $tmp_gallery->setName($entity->getTitle()); $tmp_gallery->setContext('default'); $tmp_gallery->setDefaultFormat('default_small'); $tmp_gallery->setEnabled(true); // $em->persist($tmp_gallery); // $em->refresh($tmp_gallery); for ($i = 0; $i < $numUploadedFiles; $i++) { $tmp_media = new Media(); $tmp_galleryHasMedia = new GalleryHasMedia(); $tmp_media->setBinaryContent($uploadedFiles[$i]->getRealPath()); $tmp_media->setContext('default'); $tmp_media->setName($uploadedFiles[$i]->getClientOriginalName()); $mediaManager->save($tmp_media, 'default', 'sonata.media.provider.image'); $tmp_galleryHasMedia->setMedia($tmp_media); $tmp_galleryHasMedia->setEnabled(true); $tmp_galleryHasMedia->setGallery($tmp_gallery); $em->persist($tmp_galleryHasMedia); } $em->persist($tmp_gallery); $em->flush(); $em->refresh($tmp_gallery); $entity->setGallery($tmp_gallery); } $offer = new Offer(); $em->persist($offer); $entity->setOffer($offer); $em->persist($entity); $em->flush(); return $this->redirect($this->generateUrl('lots_show', array('id' => $entity->getId()))); } return $this->render('AESlandsBundle:Lots:new.html.twig', array('entity' => $entity, 'form' => $form->createView())); }
public function mediaUploaded(MediaArrayEvent $event) { $em = $this->doctrine->getManager(); $mediaArray = $event->getMedia(); $gallery = $this->galleryManager->findOneBy(array("name" => "Media Library")); if (!$gallery) { $gallery = new Gallery(); $gallery->setName("Media Library"); $gallery->setContext('default'); $gallery->setDefaultFormat('big'); $gallery->setEnabled(true); $em->persist($gallery); } foreach ($mediaArray as $media) { $galleryHasMedia = new GalleryHasMedia(); $galleryHasMedia->setMedia($media); $galleryHasMedia->setGallery($gallery); $galleryHasMedia->setEnabled(true); $em->persist($galleryHasMedia); } $em->flush(); }
public function addAlbumPhotoAction(Request $request) { $userId = $this->getUser()->getId(); $albumId = $request->get('albumId'); $userHasAlbum = $this->getDoctrine()->getRepository('NetworkStoreBundle:UserGallery')->findAlbumForUser($userId, $albumId); if (empty($userHasAlbum)) { return $this->render('NetworkWebBundle:User:msg.html.twig', ['msg' => 'msg.add_photo_to_inaccessible_album']); } $album = $userHasAlbum->getGallery(); if (empty($album)) { return $this->render('NetworkWebBundle:User:msg.html.twig', ['msg' => 'msg.add_photo_to_nonexistent_album']); } $form = $this->createForm(new PhotoType()); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $data['media']->setDescription($data['description']); $em = $this->getDoctrine()->getManager(); $em->persist($data['media']); $ghm = new GalleryHasMedia(); $ghm->setGallery($album)->setMedia($data['media']); $em->persist($ghm); $em->flush(); $album->addGalleryHasMedia($ghm); $url = $this->generateUrl('user_show_album', ['id' => $userId, 'albumId' => $albumId]); $response = new RedirectResponse($url); return $response; } return $this->render('NetworkUserBundle:Albums:add_album_photo.html.twig', ['form' => $form->createView(), 'album_id' => $albumId]); }