merchantResolver = $merchantResolver; $this->sectionResolver = $sectionResolver; $this->merchantSettingContainer = $merchantSettingContainer; $this->sectionSettingContainer = $sectionSettingContainer; $this->siteContainer = $siteContainer; $this->siteSettingContainer = $siteSettingContainer; $this->translatorAdmin = $translatorAdmin; } /** * @Route("/admin/setting/merchant", name="carac_admin_setting_merchant") */ public function manageMerchant( Request $request ) { return $this->manage($request, 'merchant'); } /** * @Route("/admin/setting/section", name="carac_admin_setting_section") */ public function manageSection( Request $request ) { return $this->manage($request, 'section'); } public function manage( Request $request, $type ) { $entity = null; $entityManager = $this->entityManager; if ($type == 'merchant') { $resolver = $this->merchantResolver; $formClass = MerchantSettingsFormType::class; $settingDefinition = $this->merchantSettingContainer->getDefinition(); } elseif ($type == 'section') { $resolver = $this->sectionResolver; $formClass = SectionSettingsFormType::class; $settingDefinition = $this->sectionSettingContainer->getDefinition(); } $entity = $resolver->getCurrent(); if ($entity) { $form = $this->createForm($formClass, $entity); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $entityManager->update($entity); $entityManager->flush(); $this->addFlash('success', $this->get(TranslatorAdmin::class)->transFlashMessage('settings_saved')); } return $this->render( '@LcCaracole/admin/setting/edit_' . $type . '.html.twig', [ 'display_switch_section' => ($type == 'section') ? true : false, 'resolver' => $resolver, 'setting_definition' => $settingDefinition, 'form' => $form->createView() ] ); } } /** * @Route("/admin/setting/site2", name="carac_admin_setting_site") */ public function manageGlobal(Request $request, EntityManagerInterface $entityManager) { $site = $this->siteContainer->getStore()->getOneByDevAlias('default'); $form = $this->createForm(SiteSettingsFormType::class, $site); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $entityManager->update($site); $entityManager->flush(); $this->addFlash('success', $this->translatorAdmin->transFlashMessage('settings_saved')); } return $this->render( '@LcCaracole/admin/setting/edit_site.html.twig', [ 'setting_definition' => $this->siteSettingContainer->getDefinition(), 'form' => $form->createView() ] ); } }