public function editPostAction($id) { $urlFrom = $this->getReferer(); if (null == $urlFrom || trim($urlFrom) == '') { return $this->redirect($this->generateUrl('_admin_job_list')); } $em = $this->getEntityManager(); try { $job = $em->getRepository('AllucoDataBundle:Job')->find($id); if (null == $job) { $this->flashMsgSession('warning', 'Job.edit.notfound'); } else { $jobUpdateNameForm = $this->createForm(new JobUpdateNameTForm(), $job); $jobUpdateRankForm = $this->createForm(new JobUpdateRankTForm(), $job); $jobUpdateStatusForm = $this->createForm(new JobUpdateStatusTForm(), $job); $langs = $em->getRepository('AllucoDataBundle:Lang')->getAll(); $this->gvars['langs'] = $langs; foreach ($langs as $lang) { $jobTrans = $em->getRepository('AllucoDataBundle:JobTrans')->findOneBy(array('lang' => $lang, 'job' => $job)); if (null == $jobTrans) { $jobTrans = new JobTrans(); $jobTrans->setJob($job); $jobTrans->setLang($lang); $jobTrans->setName($job->getName()); try { $em->persist($jobTrans); $em->flush(); } catch (\Exception $e) { // ne rien faire } } } $em->refresh($job); $this->gvars['tabActive'] = $this->getSession()->get('tabActive', 2); $this->getSession()->remove('tabActive'); $request = $this->getRequest(); $reqData = $request->request->all(); if (isset($reqData['JobUpdateNameForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $jobUpdateNameForm->handleRequest($request); if ($jobUpdateNameForm->isValid()) { $em->persist($job); $em->flush(); $this->flashMsgSession('success', $this->translate('Job.edit.success', array('%job%' => $job->getName()))); return $this->redirect($urlFrom); } else { $em->refresh($job); $this->flashMsgSession('error', $this->translate('Job.edit.failure', array('%job%' => $job->getName()))); } } elseif (isset($reqData['JobUpdateRankForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $jobUpdateRankForm->handleRequest($request); if ($jobUpdateRankForm->isValid()) { $em->persist($job); $em->flush(); $this->flashMsgSession('success', $this->translate('Job.edit.success', array('%job%' => $job->getName()))); return $this->redirect($urlFrom); } else { $em->refresh($job); $this->flashMsgSession('error', $this->translate('Job.edit.failure', array('%job%' => $job->getName()))); } } elseif (isset($reqData['JobUpdateStatusForm'])) { $this->gvars['tabActive'] = 2; $this->getSession()->set('tabActive', 2); $jobUpdateStatusForm->handleRequest($request); if ($jobUpdateStatusForm->isValid()) { $em->persist($job); $em->flush(); $this->flashMsgSession('success', $this->translate('Job.edit.success', array('%job%' => $job->getName()))); return $this->redirect($urlFrom); } else { $em->refresh($job); $this->flashMsgSession('error', $this->translate('Job.edit.failure', array('%job%' => $job->getName()))); } } foreach ($job->getI18ns() as $jobTrans) { $em->refresh($jobTrans); $jobTransUpdateNameForm = $this->createForm(new JobTransUpdateNameTForm($jobTrans->getLang()->getLocale()), $jobTrans); if (isset($reqData['JobTransUpdateNameForm_' . $jobTrans->getLang()->getLocale()])) { $this->gvars['tabActive'] = $jobTrans->getLang()->getLocale(); $this->getSession()->set('tabActive', $jobTrans->getLang()->getLocale()); $jobTransUpdateNameForm->handleRequest($request); if ($jobTransUpdateNameForm->isValid()) { $em->persist($jobTrans); $em->flush(); $this->flashMsgSession('success', $this->translate('JobTrans.edit.success', array('%job%' => $job->getName()))); return $this->redirect($urlFrom); } else { $em->refresh($job); $this->flashMsgSession('error', $this->translate('JobTrans.edit.failure', array('%job%' => $job->getName()))); } } $this->gvars['JobTransUpdateNameForm'][$jobTrans->getLang()->getLocale()] = $jobTransUpdateNameForm->createView(); } $this->gvars['job'] = $job; $this->gvars['JobUpdateNameForm'] = $jobUpdateNameForm->createView(); $this->gvars['JobUpdateRankForm'] = $jobUpdateRankForm->createView(); $this->gvars['JobUpdateStatusForm'] = $jobUpdateStatusForm->createView(); $this->gvars['pagetitle'] = $this->translate('Pagetitle.job.edit', array('%job%' => $job->getName())); $this->gvars['pagetitle_txt'] = $this->translate('Pagetitle.job.edit.txt', array('%job%' => $job->getName())); return $this->renderResponse('AllucoAdminBundle:Job: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); }