public function editPostAction($id) { $urlFrom = $this->getReferer(); if (null == $urlFrom || trim($urlFrom) == '') { return $this->redirect($this->generateUrl('_admin_sitenew_list')); } $em = $this->getEntityManager(); try { $sitenew = $em->getRepository('AllucoDataBundle:Sitenew')->find($id); if (null == $sitenew) { $this->flashMsgSession('warning', 'Sitenew.edit.notfound'); } else { $sitenewUpdateForm = $this->createForm(new SitenewUpdateTForm(), $sitenew); $sitenewUpdatePageUrlForm = $this->createForm(new SitenewUpdatePageUrlTForm(), $sitenew); $sitenewUpdateThumbForm = $this->createForm(new SitenewUpdateThumbTForm(), $sitenew); $sitenewUpdateThumbInfoForm = $this->createForm(new SitenewUpdateThumbInfoTForm(), $sitenew); $langs = $em->getRepository('AllucoDataBundle:Lang')->getAll(); $this->gvars['langs'] = $langs; foreach ($langs as $lang) { $sitenewTrans = $em->getRepository('AllucoDataBundle:SitenewTrans')->findOneBy(array('lang' => $lang, 'sitenew' => $sitenew)); if (null == $sitenewTrans) { $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()); try { $em->persist($sitenewTrans); $em->flush(); } catch (\Exception $e) { // ne rien faire } } } $em->refresh($sitenew); $this->gvars['tabActive'] = $this->getSession()->get('tabActive', 2); $this->getSession()->remove('tabActive'); $request = $this->getRequest(); $reqData = $request->request->all(); if (isset($reqData['SitenewUpdateForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $sitenewUpdateForm->handleRequest($request); if ($sitenewUpdateForm->isValid()) { $em->persist($sitenew); $em->flush(); $this->flashMsgSession('success', $this->translate('Sitenew.edit.success', array('%sitenew%' => $sitenew->getPagetitle()))); return $this->redirect($urlFrom); } else { $em->refresh($sitenew); $this->flashMsgSession('error', $this->translate('Sitenew.edit.failure', array('%sitenew%' => $sitenew->getPagetitle()))); } } elseif (isset($reqData['SitenewUpdateThumbForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $sitenewUpdateThumbForm->handleRequest($request); if ($sitenewUpdateThumbForm->isValid()) { $sitenewUrl = $sitenewUpdateThumbForm['thumb']->getData(); $sitenewDir = $this->getParameter('kernel.root_dir') . '/../web/res/news'; $fileName = sha1(uniqid(mt_rand(), true)) . '.' . strtolower($sitenewUrl->getClientOriginalExtension()); $sitenewUrl->move($sitenewDir, $fileName); $sitenew->setThumb($fileName); $em->persist($sitenew); $em->flush(); $this->flashMsgSession('success', $this->translate('Sitenew.edit.success', array('%sitenew%' => $sitenew->getPagetitle()))); return $this->redirect($urlFrom); } else { $em->refresh($sitenew); $this->flashMsgSession('error', $this->translate('Sitenew.edit.failure', array('%sitenew%' => $sitenew->getPagetitle()))); } } elseif (isset($reqData['SitenewUpdateThumbInfoForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $sitenewUpdateThumbInfoForm->handleRequest($request); if ($sitenewUpdateThumbInfoForm->isValid()) { $em->persist($sitenew); $em->flush(); $this->flashMsgSession('success', $this->translate('Sitenew.edit.success', array('%sitenew%' => $sitenew->getPagetitle()))); return $this->redirect($urlFrom); } else { $em->refresh($sitenew); $this->flashMsgSession('error', $this->translate('Sitenew.edit.failure', array('%sitenew%' => $sitenew->getPagetitle()))); } } elseif (isset($reqData['SitenewUpdatePageUrlForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $sitenewUpdatePageUrlForm->handleRequest($request); if ($sitenewUpdatePageUrlForm->isValid()) { $slug = $this->get('cocur_slugify')->slugify($sitenewUpdatePageUrlForm['pageUrl']->getData(), '_'); $foundSlug = false; do { $sitenewTest = $em->getRepository('AllucoDataBundle:Sitenew')->findOneBy(array('pageUrl' => $slug)); if (null != $sitenewTest && $sitenewTest->getId() != $sitenew->getId()) { $foundSlug = true; $slug = $slug . '_1'; } else { $foundSlug = false; } } while ($foundSlug == true); $sitenew->setPageUrl($slug); $em->persist($sitenew); $em->flush(); $this->flashMsgSession('success', $this->translate('Sitenew.edit.success', array('%sitenew%' => $sitenew->getPagetitle()))); return $this->redirect($urlFrom); } else { $em->refresh($sitenew); $this->flashMsgSession('error', $this->translate('Sitenew.edit.failure', array('%sitenew%' => $sitenew->getPagetitle()))); } } foreach ($sitenew->getI18ns() as $sitenewTrans) { $em->refresh($sitenewTrans); $sitenewTransUpdateForm = $this->createForm(new SitenewTransUpdateTForm($sitenewTrans->getLang()->getLocale()), $sitenewTrans); $sitenewTransUpdateThumbInfoForm = $this->createForm(new SitenewTransUpdateThumbInfoTForm($sitenewTrans->getLang()->getLocale()), $sitenewTrans); if (isset($reqData['SitenewTransUpdateForm_' . $sitenewTrans->getLang()->getLocale()])) { $this->gvars['tabActive'] = $sitenewTrans->getLang()->getLocale(); $this->getSession()->set('tabActive', $sitenewTrans->getLang()->getLocale()); $sitenewTransUpdateForm->handleRequest($request); if ($sitenewTransUpdateForm->isValid()) { $em->persist($sitenewTrans); $em->flush(); $this->flashMsgSession('success', $this->translate('SitenewTrans.edit.success', array('%sitenew%' => $sitenew->getPagetitle()))); return $this->redirect($urlFrom); } else { $em->refresh($sitenew); $this->flashMsgSession('error', $this->translate('SitenewTrans.edit.failure', array('%sitenew%' => $sitenew->getPagetitle()))); } } elseif (isset($reqData['SitenewTransUpdateThumbInfoForm_' . $sitenewTrans->getLang()->getLocale()])) { $this->gvars['tabActive'] = $sitenewTrans->getLang()->getLocale(); $this->getSession()->set('tabActive', $sitenewTrans->getLang()->getLocale()); $sitenewTransUpdateThumbInfoForm->handleRequest($request); if ($sitenewTransUpdateThumbInfoForm->isValid()) { $em->persist($sitenewTrans); $em->flush(); $this->flashMsgSession('success', $this->translate('SitenewTrans.edit.success', array('%sitenew%' => $sitenew->getPagetitle()))); return $this->redirect($urlFrom); } else { $em->refresh($sitenew); $this->flashMsgSession('error', $this->translate('SitenewTrans.edit.failure', array('%sitenew%' => $sitenew->getPagetitle()))); } } $this->gvars['SitenewTransUpdateForm'][$sitenewTrans->getLang()->getLocale()] = $sitenewTransUpdateForm->createView(); $this->gvars['SitenewTransUpdateThumbInfoForm'][$sitenewTrans->getLang()->getLocale()] = $sitenewTransUpdateThumbInfoForm->createView(); } $this->gvars['sitenew'] = $sitenew; $this->gvars['SitenewUpdateForm'] = $sitenewUpdateForm->createView(); $this->gvars['SitenewUpdatePageUrlForm'] = $sitenewUpdatePageUrlForm->createView(); $this->gvars['SitenewUpdateThumbForm'] = $sitenewUpdateThumbForm->createView(); $this->gvars['pagetitle'] = $this->translate('Pagetitle.sitenew.edit', array('%sitenew%' => $sitenew->getPagetitle())); $this->gvars['pagetitle_txt'] = $this->translate('Pagetitle.sitenew.edit.txt', array('%sitenew%' => $sitenew->getPagetitle())); return $this->renderResponse('AllucoAdminBundle:Sitenew: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); }