public function editPostAction($id) { $urlFrom = $this->getReferer(); if (null == $urlFrom || trim($urlFrom) == '') { return $this->redirect($this->generateUrl('_admin_banner_list')); } $em = $this->getEntityManager(); try { $banner = $em->getRepository('AllucoDataBundle:Banner')->find($id); if (null == $banner) { $this->flashMsgSession('warning', 'Banner.edit.notfound'); } else { $bannerUpdateContentForm = $this->createForm(new BannerUpdateContentTForm(), $banner); $bannerUpdateRankForm = $this->createForm(new BannerUpdateRankTForm(), $banner); $bannerUpdateInfoForm = $this->createForm(new BannerUpdateInfoTForm(), $banner); $langs = $em->getRepository('AllucoDataBundle:Lang')->getAll(); $this->gvars['langs'] = $langs; foreach ($langs as $lang) { $bannerTrans = $em->getRepository('AllucoDataBundle:BannerTrans')->findOneBy(array('lang' => $lang, 'banner' => $banner)); if (null == $bannerTrans) { $bannerTrans = new BannerTrans(); $bannerTrans->setBanner($banner); $bannerTrans->setLang($lang); $bannerTrans->setAlt($banner->getAlt()); $bannerTrans->setTitle($banner->getTitle()); try { $em->persist($bannerTrans); $em->flush(); } catch (\Exception $e) { // ne rien faire } } } $em->refresh($banner); $this->gvars['tabActive'] = $this->getSession()->get('tabActive', 2); $this->getSession()->remove('tabActive'); $request = $this->getRequest(); $reqData = $request->request->all(); if (isset($reqData['BannerUpdateContentForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $bannerUpdateContentForm->handleRequest($request); if ($bannerUpdateContentForm->isValid()) { $bannerUrl = $bannerUpdateContentForm['filename']->getData(); $bannerDir = $this->getParameter('kernel.root_dir') . '/../web/res/banners'; $fileName = sha1(uniqid(mt_rand(), true)) . '.' . strtolower($bannerUrl->getClientOriginalExtension()); $bannerUrl->move($bannerDir, $fileName); $banner->setFilename($fileName); $em->persist($banner); $em->flush(); $this->flashMsgSession('success', $this->translate('Banner.edit.success', array('%banner%' => $banner->getFilename()))); return $this->redirect($urlFrom); } else { $em->refresh($banner); $this->flashMsgSession('error', $this->translate('Banner.edit.failure', array('%banner%' => $banner->getFilename()))); } } elseif (isset($reqData['BannerUpdateRankForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $bannerUpdateRankForm->handleRequest($request); if ($bannerUpdateRankForm->isValid()) { $em->persist($banner); $em->flush(); $this->flashMsgSession('success', $this->translate('Banner.edit.success', array('%banner%' => $banner->getFilename()))); return $this->redirect($urlFrom); } else { $em->refresh($banner); $this->flashMsgSession('error', $this->translate('Banner.edit.failure', array('%banner%' => $banner->getFilename()))); } } elseif (isset($reqData['BannerUpdateInfoForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $bannerUpdateInfoForm->handleRequest($request); if ($bannerUpdateInfoForm->isValid()) { $em->persist($banner); $em->flush(); $this->flashMsgSession('success', $this->translate('Banner.edit.success', array('%banner%' => $banner->getFilename()))); return $this->redirect($urlFrom); } else { $em->refresh($banner); $this->flashMsgSession('error', $this->translate('Banner.edit.failure', array('%banner%' => $banner->getFilename()))); } } foreach ($banner->getI18ns() as $bannerTrans) { $em->refresh($bannerTrans); $bannerTransUpdateInfoForm = $this->createForm(new BannerTransUpdateInfoTForm($bannerTrans->getLang()->getLocale()), $bannerTrans); if (isset($reqData['BannerTransUpdateInfoForm_' . $bannerTrans->getLang()->getLocale()])) { $this->gvars['tabActive'] = $bannerTrans->getLang()->getLocale(); $this->getSession()->set('tabActive', $bannerTrans->getLang()->getLocale()); $bannerTransUpdateInfoForm->handleRequest($request); if ($bannerTransUpdateInfoForm->isValid()) { $em->persist($bannerTrans); $em->flush(); $this->flashMsgSession('success', $this->translate('BannerTrans.edit.success', array('%banner%' => $banner->getFilename()))); return $this->redirect($urlFrom); } else { $em->refresh($banner); $this->flashMsgSession('error', $this->translate('BannerTrans.edit.failure', array('%banner%' => $banner->getFilename()))); } } $this->gvars['BannerTransUpdateInfoForm'][$bannerTrans->getLang()->getLocale()] = $bannerTransUpdateInfoForm->createView(); } $this->gvars['banner'] = $banner; $this->gvars['BannerUpdateContentForm'] = $bannerUpdateContentForm->createView(); $this->gvars['BannerUpdateRankForm'] = $bannerUpdateRankForm->createView(); $this->gvars['BannerUpdateInfoForm'] = $bannerUpdateInfoForm->createView(); $this->gvars['pagetitle'] = $this->translate('Pagetitle.banner.edit', array('%banner%' => $banner->getFilename())); $this->gvars['pagetitle_txt'] = $this->translate('Pagetitle.banner.edit.txt', array('%banner%' => $banner->getFilename())); return $this->renderResponse('AllucoAdminBundle:Banner:edit.html.twig', $this->gvars); } } catch (\Exception $e) { $logger = $this->getLogger(); $logger->addCritical($e->getLine() . ' ' . $e->getMessage() . ' ' . $e->getTraceAsString()); } return $this->redirect($urlFrom); }
public function addPostAction() { $urlFrom = $this->getReferer(); if (null == $urlFrom || trim($urlFrom) == '') { return $this->redirect($this->generateUrl('_admin_lang_addGet')); } $lang = new Lang(); $langNewForm = $this->createForm(new LangNewTForm(), $lang); $request = $this->getRequest(); $reqData = $request->request->all(); if (isset($reqData['LangNewForm'])) { $langNewForm->handleRequest($request); if ($langNewForm->isValid()) { $em = $this->getEntityManager(); $em->persist($lang); $em->flush(); $jobs = $em->getRepository('AllucoDataBundle:Job')->getAll(); foreach ($jobs as $job) { $jobTrans = new JobTrans(); $jobTrans->setLang($lang); $jobTrans->setJob($job); $jobTrans->setName($job->getName()); $em->persist($jobTrans); } $banners = $em->getRepository('AllucoDataBundle:Banner')->getAll(); foreach ($banners as $banner) { $bannerTrans = new BannerTrans(); $bannerTrans->setLang($lang); $bannerTrans->setBanner($banner); $bannerTrans->setAlt($banner->getAlt()); $bannerTrans->setTitle($banner->getTitle()); $em->persist($bannerTrans); } $certifs = $em->getRepository('AllucoDataBundle:Certif')->getAll(); foreach ($certifs as $certif) { $certifTrans = new CertifTrans(); $certifTrans->setLang($lang); $certifTrans->setCertif($certif); $certifTrans->setTitle($certif->getTitle()); $em->persist($certifTrans); } $staticpages = $em->getRepository('AllucoDataBundle:Staticpage')->getAll(); foreach ($staticpages as $staticpage) { $staticpageTrans = new StaticpageTrans(); $staticpageTrans->setLang($lang); $staticpageTrans->setStaticpage($staticpage); $staticpageTrans->setMetaTitle($staticpage->getMetaTitle()); $staticpageTrans->setMetaKeywords($staticpage->getMetaKeywords()); $staticpageTrans->setMetaDescription($staticpage->getMetaDescription()); $staticpageTrans->setPageTitle($staticpage->getPageTitle()); $staticpageTrans->setBreadcrumb($staticpage->getBreadcrumb()); $staticpageTrans->setPageContent($staticpage->getPageContent()); $em->persist($staticpageTrans); } $sitenews = $em->getRepository('AllucoDataBundle:Sitenew')->getAll(); foreach ($sitenews as $sitenew) { $sitenewTrans = new SitenewTrans(); $sitenewTrans->setLang($lang); $sitenewTrans->setSitenew($sitenew); $sitenewTrans->setMetaTitle($sitenew->getMetaTitle()); $sitenewTrans->setMetaKeywords($sitenew->getMetaKeywords()); $sitenewTrans->setMetaDescription($sitenew->getMetaDescription()); $sitenewTrans->setPageTitle($sitenew->getPageTitle()); $sitenewTrans->setBreadcrumb($sitenew->getBreadcrumb()); $sitenewTrans->setPageContent($sitenew->getPageContent()); $sitenewTrans->setThumbAlt($sitenew->getThumbAlt()); $sitenewTrans->setThumbTitle($sitenew->getThumbTitle()); $em->persist($sitenewTrans); } $products = $em->getRepository('AllucoDataBundle:Product')->getAll(); foreach ($products as $product) { $productTrans = new ProductTrans(); $productTrans->setLang($lang); $productTrans->setProduct($product); $productTrans->setName($product->getName()); $productTrans->setMetaTitle($product->getMetaTitle()); $productTrans->setMetaKeywords($product->getMetaKeywords()); $productTrans->setMetaDescription($product->getMetaDescription()); $productTrans->setPageTitle($product->getPageTitle()); $productTrans->setBreadcrumb($product->getBreadcrumb()); $productTrans->setPageContent($product->getPageContent()); $productTrans->setThumbAlt($product->getThumbAlt()); $productTrans->setThumbTitle($product->getThumbTitle()); $em->persist($productTrans); } $productpics = $em->getRepository('AllucoDataBundle:Productpic')->getAll(); foreach ($productpics as $productpic) { $productpicTrans = new ProductpicTrans(); $productpicTrans->setLang($lang); $productpicTrans->setProductpic($productpic); $productpicTrans->setAlt($productpic->getAlt()); $productpicTrans->setTitle($productpic->getTitle()); $em->persist($productpicTrans); } $productdocs = $em->getRepository('AllucoDataBundle:Productdoc')->getAll(); foreach ($productdocs as $productdoc) { $productdocTrans = new ProductdocTrans(); $productdocTrans->setLang($lang); $productdocTrans->setProductdoc($productdoc); $productdocTrans->setTitle($productdoc->getTitle()); $em->persist($productdocTrans); } $em->flush(); $this->flashMsgSession('success', $this->translate('Lang.add.success', array('%lang%' => $lang->getName()))); return $this->redirect($this->generateUrl('_admin_lang_editGet', array('id' => $lang->getId()))); } else { $this->flashMsgSession('error', $this->translate('Lang.add.failure', array('%lang%' => $langNewForm['locale']->getData()))); } } $this->gvars['lang'] = $lang; $this->gvars['LangNewForm'] = $langNewForm->createView(); $this->gvars['pagetitle'] = $this->translate('Pagetitle.lang.add'); $this->gvars['pagetitle_txt'] = $this->translate('Pagetitle.lang.add.txt'); $this->gvars['smenu_active'] = 'add'; return $this->renderResponse('AllucoAdminBundle:Lang:add.html.twig', $this->gvars); }