public function displayAction($folder) { $entityManager = $this->getDoctrine()->getManager(); try { $slideshow = $entityManager->getRepository('jcFTPSlideshowBundle:Slideshow')->findOneBy(array('name' => $folder)); if ($slideshow == null) { $slideshow = new Slideshow(); $slideshow->setName($folder); $slideshow->setTitle($folder); } // Get all existing directories for costa rica pictures $rootPath = $this->container->getParameter('jc_ftp_slideshow.root_path'); $basePath = $this->container->getParameter('kernel.root_dir') . '/../web' . $rootPath . '/' . $folder; $finder = Finder::create(); $fileList = $finder->in($basePath)->depth(0)->files(); $pictureList = array(); foreach ($fileList as $file) { $name = $file->getFilename(); $picture = $entityManager->getRepository('jcFTPSlideshowBundle:Picture')->findOneBy(array('name' => $name)); if ($picture == null) { $picture = new Picture(); $picture->setName($name); $picture->setTitle($name); } $pictureList[] = $picture; } return $this->render('jcFTPSlideshowBundle:FO:slideshow.html.twig', array('slideshow' => $slideshow, 'pictureList' => $pictureList)); } catch (Exception $e) { $request->getSession()->getFlashBag()->add('bo-error-message', 'Erreur lors de l\'exploration du dossier courant'); } }
public function processPictureAction($folderName, $name) { $request = $this->getRequest(); $entityManager = $this->getDoctrine()->getManager(); // Get picture matching current file $picture = $entityManager->getRepository('jcFTPSlideshowBundle:Picture')->findOneBy(array('name' => $name)); // If picture not yet processed => create it if ($picture == null) { $picture = new Picture(); $picture->setName($name); $picture->setTitle($name); $picture->setFolderName($folderName); $entityManager->persist($picture); $entityManager->flush(); } // If user has submit form => save picture if ($request->getMethod() == 'POST') { try { $form = $this->createForm(new PictureType(), $picture); $form->bind($request); if ($form->isValid()) { // $entityManager->persist($picture); $entityManager->flush(); $request->getSession()->getFlashBag()->add('bo-log-message', 'Sauvegarde de l\'image OK'); return $this->redirect($this->generateUrl('jc_ftp_slideshow_bo_slideshow', array('name' => $picture->getFolderName()))); } else { $request->getSession()->getFlashBag()->add('bo-warning-message', 'Certains champs ne sont pas remplis correctement'); } } catch (Exception $e) { $request->getSession()->getFlashBag()->add('bo-error-message', 'Erreur lors de la sauvegarde de la course'); } } else { $form = $this->createForm(new PictureType(), $picture); } return $this->render('jcFTPSlideshowBundle:BO:pictureEdit.html.twig', array('pictureToEdit' => $form->createView())); }