コード例 #1
0
 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');
     }
 }
コード例 #2
0
 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));
 }