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 processFolderAction($name) { $request = $this->getRequest(); $entityManager = $this->getDoctrine()->getManager(); // Get all pictures matching current folder try { // Get all existing files in folder $rootPath = $this->container->getParameter('jc_ftp_slideshow.root_path'); $basePath = $this->container->getParameter('kernel.root_dir') . '/../web' . $rootPath . '/' . $name; $finder = Finder::create(); $fileList = $finder->in($basePath)->depth(0)->files(); } catch (Exception $e) { $request->getSession()->getFlashBag()->add('bo-error-message', 'Erreur lors de l\'exploration du dossier courant'); } // Get slideshow matching current folder $slideshow = $entityManager->getRepository('jcFTPSlideshowBundle:Slideshow')->findOneBy(array('name' => $name)); // If slideshow not yet processed => create it if ($slideshow == null) { $slideshow = new Slideshow(); $slideshow->setName($name); $slideshow->setTitle($name); $entityManager->persist($slideshow); $entityManager->flush(); } // If user has submit form => save slideshow if ($request->getMethod() == 'POST') { try { $form = $this->createForm(new SlideshowType(), $slideshow); $form->bind($request); if ($form->isValid()) { $entityManager->persist($slideshow); $entityManager->flush(); $request->getSession()->getFlashBag()->add('bo-log-message', 'Sauvegarde du diaporama OK'); return $this->redirect($this->generateUrl('jc_ftp_slideshow_bo_index')); } 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 SlideshowType(), $slideshow); } return $this->render('jcFTPSlideshowBundle:BO:slideshowEdit.html.twig', array('slideshowToEdit' => $form->createView(), 'fileList' => $fileList)); }