src/Controller/PageController.php line 164
<?phpnamespace App\Controller;use App\Entity\Letter;use App\Entity\Page;use App\Repository\PageRepository;use App\Services\PageService;use Doctrine\ORM\EntityManagerInterface;use Gedmo\Translatable\TranslatableListener;use Gedmo\Translatable\Entity\Translation;use Gedmo\Translatable\Entity\Repository\TranslationRepository;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;#[Route('/page')]class PageController extends AbstractController{private EntityManagerInterface $entityManager;public function __construct(EntityManagerInterface $entityManager){$this->entityManager = $entityManager;}#[Route('/new', name: 'app_page_new', methods: ['GET', 'POST'])]public function new(Request $request, EntityManagerInterface $entityManager): Response{$page = new Page();$entityManager->persist($page);$entityManager->flush();return new JsonResponse('success');}#[Route('/about-template/{_locale}', name: 'page_home1555',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function index15(PageRepository $pageRepository){$page = $pageRepository->find(2);$editable = true;return $this->render('@web/page/template.html.twig',['page'=>$page,'editable' => $editable]);}#[Route('/about-template/view/{_locale}', name: 'page_home15555',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function index150(PageRepository $pageRepository){$page = $pageRepository->find(2);$editable = false;return $this->render('@web/page/template.html.twig',['page'=>$page,'editable' => $editable]);}#[Route('/{slug}/{_locale}', name: 'page_work',requirements: ['_locale' => 'en|ru|hy|ka|uk'], defaults: ['_locale' => 'ru'])]public function pageEdit(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = true;$preview = false;return $this->render('@web/page/template.html.twig',['page'=>$page,'editable' => $editable,'preview' => $preview]);}#[Route('/dalma/{slug}/{_locale}', name: 'page_dalma_edit',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function pageDalmaEdit(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = true;$preview = false;$dalma = false;return $this->render('@web/page/template-dalma.html.twig',['page'=>$page,'dalma'=>$dalma,'editable' => $editable,'preview' => $preview]);}#[Route('/yeremyan/{slug}/{_locale}', name: 'page_yeremyan_edit',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function pageYeremyanEdit(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = true;$preview = false;$dalma = false;return $this->render('@web/page/template-sherep.html.twig',['page'=>$page,'dalma'=>$dalma,'editable' => $editable,'preview' => $preview]);}#[Route('/birthday/{slug}/{_locale}', name: 'page_birthday_edit',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function pageBirthdayEdit(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = true;$preview = false;$dalma = false;return $this->render('@web/page/template-birthday.html.twig',['page'=>$page,'image'=>null,'dalma'=>$dalma,'editable' => $editable,'preview' => $preview]);}#[Route('/seassons/{slug}/{id}/view/{_locale}', name: 'page_birthday_edit',requirements: ['_locale' => 'en|ru|hy|es|it|fr|el|ua|ka|de'], defaults: ['_locale' => 'ru'])]public function pageSeassons(string $slug,int $id,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = false;$preview = false;$letter = $this->entityManager->getRepository(Letter::class)->findOneBy(['externalId' => (string)$id]);$dalma = false;return $this->render('@web/page/template-christmas.html.twig',['page'=>$page,'image'=>null,'letter'=>$letter,'dalma'=>$dalma,'editable' => false,'viewImage' => false,'preview' => $preview]);}#[Route('/baptism/{slug}/{_locale}', name: 'page_baptism_edit',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function baptismEdit(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = true;$preview = false;return $this->render('@web/page/template-baptism.html.twig',['page'=>$page,'editable' => $editable,'preview' => $preview]);}#[Route('/{slug}/view/{_locale}', name: 'page_view',requirements: ['_locale' => 'en|ru|hy|ka|uk'], defaults: ['_locale' => 'ru'])]public function pageView(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = false;$preview = false;return $this->render('@web/page/template.html.twig',['page'=>$page,'editable' => $editable,'preview' => $preview]);}#[Route('/dalma/{slug}/view/{_locale}', name: 'page_dalma_view',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function pageDalmaView(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = false;$preview = false;return $this->render('@web/page/template-dalma.html.twig',['page'=>$page,'editable' => $editable,'preview' => $preview]);}#[Route('/yeremyan/{slug}/view/{_locale}', name: 'page_yeremyan_view',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function pageYeremyanView(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = false;$preview = false;return $this->render('@web/page/template-sherep.html.twig',['page'=>$page,'editable' => $editable,'preview' => $preview]);}#[Route('/birthday/{slug}/view/{_locale}', name: 'page_birthday_view',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function pageBirthdayView(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = false;$preview = false;return $this->render('@web/page/template-birthday.html.twig',['page'=>$page,'editable' => $editable,'preview' => $preview]);}#[Route('/{slug}/preview/{_locale}', name: 'page_preview',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function pagePreview(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = false;$preview = true;return $this->render('@web/page/template.html.twig',['page'=>$page,'editable' => $editable,'preview' => $preview]);}#[Route('/baptism/{slug}/view/{_locale}', name: 'baptism_view',requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]public function baptismView(string $slug,PageRepository $pageRepository){$page = $pageRepository->findOneBy(['slug' => $slug]);$editable = false;return $this->render('@web/page/template-baptism.html.twig',['page'=>$page,'editable' => $editable]);}#[Route('/save/{_locale}/{id}', name: 'app_page_save', requirements: ['_locale' => 'en|ru|hy|es|it|fr|el|ua|ka|de|uk'], defaults: ['_locale' => 'ru'], methods: ['POST'])]public function save(Page $page, Request $request, PageService $pageService): Response{$local = $request->getLocale();$transRepo = $this->entityManager->getRepository(Translation::class);$data = json_decode($request->getContent(), true);if (isset($data['removeImage'])){$method = 'set' . ucfirst($data['field']);if (method_exists($page, $method)) {$page->$method(null);}}else{$page->setTranslatableLocale($local);$transRepo->translate($page,$data['field'],$local, $data['value']);}$getter = $pageService->generateGetter($data['field']);$this->entityManager->flush();$returnData =['field'=>$data['field'],'value'=>$page->$getter($data['field'])];if (isset($data['removeImage'])){$returnData['removeImage'] = true;};return new JsonResponse($returnData);}#[Route('/list', name: 'app_page_list', methods: ['GET'])]public function delete(Request $request, PageRepository $pageRepository, EntityManagerInterface $entityManager): Response{$templates = $pageRepository->findAll();return $this->render('@web/page/templates-list.html.twig',['templates'=>$templates]);}}