Esempio n. 1
0
 /**
  * Execute
  *
  * @param InputInterface  $input  input
  * @param OutputInterface $output output
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $output->writeln('<info>Import translations lot 4</info>');
     try {
         $entityManager = $this->getEntityManager();
         $translationRepository = $this->getTranslationRepository();
         $langs = $this->getContainer()->getParameter('langs');
         $translationDir = $this->getContainer()->getParameter('translation_dir') . '/lot_4/';
         $progress = $this->getHelperSet()->get('progress');
         $progress->start($output, count($langs));
         $hotelHighlights = array();
         $pages = array();
         foreach ($langs as $lang) {
             $translationfiles = scandir($translationDir . strtoupper($lang) . '/');
             foreach ($translationfiles as $translationFile) {
                 if ($translationFile == "." || $translationFile == "..") {
                     continue;
                 }
                 if ($translationFile == 'page.xlsx') {
                     $file = $translationDir . strtoupper($lang) . '/' . $translationFile;
                     $pageCsv = Converter::getCsv($file);
                     $data = Converter::getData($pageCsv);
                     foreach ($data as $page) {
                         $pages[$page[0]][$lang] = array('brand' => utf8_decode($page[1]), 'name' => '[' . utf8_decode($page[1]) . '] ' . utf8_decode($page[2]), 'title' => '<h1>' . utf8_decode($page[3]) . '</h1>', 'description' => '<p>' . utf8_decode($page[4]) . '</p><p>' . utf8_decode($page[5]) . '</p>');
                     }
                 }
             }
             $progress->advance();
         }
         $progress->finish();
         $output->writeln(' > <info>Handling pages</info>');
         $progress->start($output, count($pages));
         $template = $this->getRepository('BigfootContentBundle:Template')->findOneByRoute('SehBundle:page:default.html.twig');
         foreach ($pages as $code => $cPage) {
             if (!($nPage = $this->getRepository('BigfootContentBundle:Page')->findOneBy(array('name' => $cPage['en']['name'])))) {
                 $nPage = new Page();
             }
             $nPage->setActive(true)->setTranslatableLocale('en')->setName($cPage['en']['name'])->setTitle($cPage['en']['title'])->setDescription($cPage['en']['description'])->setTemplate($template);
             foreach ($langs as $lang) {
                 if ($lang != 'en') {
                     $translationRepository->translate($nPage, 'name', $lang, $cPage[$lang]['name']);
                     $translationRepository->translate($nPage, 'title', $lang, $cPage[$lang]['title']);
                     $translationRepository->translate($nPage, 'description', $lang, $cPage[$lang]['description']);
                 }
             }
             $entityManager->persist($nPage);
             $progress->advance();
         }
         $progress->finish();
         $output->writeln(' > <info>Flushing</info>');
         $entityManager->flush();
         $output->writeln(' > <comment>OK</comment>');
     } catch (Exception $e) {
         $output->writeln(' > <error>Erreur : ' . $e->getMessage() . '</error>');
     }
 }
Esempio n. 2
0
 /**
  * Execute
  *
  * @param InputInterface  $input  input
  * @param OutputInterface $output output
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $output->writeln('<info>Import translations lot 2</info>');
     try {
         $entityManager = $this->getEntityManager();
         $translationRepository = $this->getTranslationRepository();
         $langs = $this->getContainer()->getParameter('langs');
         $translationDir = $this->getContainer()->getParameter('translation_dir') . '/lot_2/';
         $progress = $this->getHelperSet()->get('progress');
         $progress->start($output, count($langs));
         $hotelHighlights = array();
         $pages = array();
         foreach ($langs as $lang) {
             $translationfiles = scandir($translationDir . strtoupper($lang) . '/');
             foreach ($translationfiles as $translationFile) {
                 if ($translationFile == "." || $translationFile == "..") {
                     continue;
                 }
                 if ($translationFile == 'hotel.xlsx') {
                     $file = $translationDir . strtoupper($lang) . '/' . $translationFile;
                     $hotelCsv = Converter::getCsv($file);
                     $data = Converter::getData($hotelCsv);
                     foreach ($data as $hotel) {
                         $code = $hotel[0];
                         $description = $hotel[2];
                         $hotelHighlights[$code]['highlight_1'][$lang] = trim($hotel[3]);
                         $hotelHighlights[$code]['highlight_2'][$lang] = trim($hotel[4]);
                         $hotelHighlights[$code]['highlight_3'][$lang] = trim($hotel[5]);
                         $hotelDb = $this->getRepository('SehBundle:Hotel')->findOneByCodeAdherent($code);
                         if ($hotelDb) {
                             $hotelDb->setTranslatableLocale('en');
                             $translationRepository->translate($hotelDb, 'shortDescription', $lang, utf8_decode($description));
                             $entityManager->persist($hotelDb);
                         }
                     }
                 } elseif ($translationFile == 'page.csv') {
                     $file = $translationDir . strtoupper($lang) . '/' . $translationFile;
                     $data = Converter::getData($file);
                     foreach ($data as $page) {
                         $pages[$page[0]][$lang] = array('brand' => $page[1], 'name' => $page[2], 'title' => '<h1>' . $page[3] . '</h1>', 'description' => '<p>' . $page[4] . '</p><h2>' . $page[5] . '</h2><p>' . $page[6] . '</p><h2>' . $page[7] . '</h2><p>' . $page[8] . '</p><h2>' . $page[9] . '</h2><p>' . $page[10] . '</p>' . $page[11] . '</p><h2>' . $page[12] . '</h2><p>' . $page[13] . '</p>');
                     }
                 }
             }
             $progress->advance();
         }
         $progress->finish();
         $output->writeln(' > <info>Handling hightlights</info>');
         $this->getRepository('SehBundle:HotelHighlight')->deleteAll();
         $progress->start($output, count($hotelHighlights));
         foreach ($hotelHighlights as $code => $hightlights) {
             $hotelDb = $this->getRepository('SehBundle:Hotel')->findOneByCodeAdherent($code);
             if ($hotelDb) {
                 foreach ($hightlights as $hightlight) {
                     $hHighlight = new HotelHighlight();
                     $hHighlight->setHotel($hotelDb)->setTranslatableLocale('en')->setName($hightlight['en']);
                     foreach ($langs as $lang) {
                         if ($lang != 'en') {
                             $translationRepository->translate($hHighlight, 'name', $lang, utf8_decode($hightlight[$lang]));
                         }
                     }
                     $entityManager->persist($hHighlight);
                 }
             }
             $progress->advance();
         }
         $progress->finish();
         $output->writeln(' > <info>Handling pages</info>');
         $progress->start($output, count($pages));
         $template = $this->getRepository('BigfootContentBundle:Template')->findOneByRoute('SehBundle:page:default.html.twig');
         foreach ($pages as $cPage) {
             $nPage = $this->getRepository('BigfootContentBundle:Page')->findOneByName($cPage['en']['name']);
             if (!$nPage) {
                 $nPage = new Page();
             }
             $nPage->setActive(true)->setTranslatableLocale('en')->setName($cPage['en']['name'])->setTitle($cPage['en']['title'])->setDescription($cPage['en']['description'])->setTemplate($template);
             foreach ($langs as $lang) {
                 if ($lang != 'en') {
                     $translationRepository->translate($nPage, 'name', $lang, $cPage[$lang]['name']);
                     $translationRepository->translate($nPage, 'title', $lang, $cPage[$lang]['title']);
                     $translationRepository->translate($nPage, 'description', $lang, $cPage[$lang]['description']);
                 }
             }
             $entityManager->persist($nPage);
             $progress->advance();
         }
         $progress->finish();
         $output->writeln(' > <info>Flushing</info>');
         $entityManager->flush();
         $output->writeln(' > <comment>OK</comment>');
     } catch (Exception $e) {
         $output->writeln(' > <error>Erreur : ' . $e->getMessage() . '</error>');
     }
 }