コード例 #1
0
ファイル: LotsController.php プロジェクト: madspy0/lands
 /**
  * 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()));
 }
コード例 #2
0
 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();
 }
コード例 #3
0
 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]);
 }