src/Controller/PageController.php line 87

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Service\Internal\CmsService;
  4. use App\Service\Internal\HomePageService;
  5. use App\Utils\DeviceInfo;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. class PageController extends AbstractController
  10. {
  11. public function index(
  12. $id,
  13. HomePageService $newsPageService,
  14. CmsService $cmsService
  15. ): Response {
  16. $parameters = $newsPageService->getRenderParameters();
  17. $parameters['isXmlHttpMode'] = true;
  18. $cmsPages = $cmsService->getPages();
  19. $menuPages = [];
  20. $footerPages = [];
  21. $subPages = [];
  22. foreach ($cmsPages as $page) {
  23. if ($page->hook == 'MENU') {
  24. $menuPages[$page->id] = $page;
  25. }
  26. if ($page->hook == 'FOOTER') {
  27. $footerPages[$page->id] = $page;
  28. }
  29. if ($page->hook == 'NONE') {
  30. $subPages[$page->id] = $page;
  31. }
  32. }
  33. if (!isset($menuPages[$id]) && !isset($footerPages[$id]) && !isset($subPages[$id])) {
  34. return $this->redirectToRoute('homepage');
  35. }
  36. $pages = $menuPages + $footerPages + $subPages;
  37. $parameters['menuPages'] = $menuPages;
  38. $parameters['footerPages'] = $footerPages;
  39. $parameters['id'] = $id;
  40. $parameters['pages'] = $pages;
  41. return $this->render('pages/sim/page.html.twig', $parameters);
  42. }
  43. /**
  44. * Cookies page
  45. */
  46. public function cookies(Request $request, HomePageService $newsPageService, CmsService $cmsService): Response
  47. {
  48. $parameters = $newsPageService->getRenderParameters();
  49. $cmsPages = $cmsService->getPages();
  50. $menuPages = [];
  51. $footerPages = [];
  52. foreach ($cmsPages as $page) {
  53. if ($page->hook == 'MENU') {
  54. $menuPages[$page->id] = $page;
  55. }
  56. if ($page->hook == 'FOOTER') {
  57. $footerPages[$page->id] = $page;
  58. }
  59. }
  60. $pages = $menuPages + $footerPages;
  61. $parameters['menuPages'] = $menuPages;
  62. $parameters['footerPages'] = $footerPages;
  63. $parameters['pages'] = $pages;
  64. $locale = $request->getLocale();
  65. return $this->render('pages/' . $locale . '/cookies.html.twig', $parameters);
  66. }
  67. /**
  68. * Get footer menu
  69. */
  70. public function getFooterAction(
  71. CmsService $cmsService,
  72. $filigree = false
  73. ): Response {
  74. $parameters = [];
  75. $parameters = DeviceInfo::addDeviceParameters($parameters);
  76. $menu = $cmsService->getMenu();
  77. $parameters['menuPages'] = $menu['menuPages'];
  78. $parameters['footerPages'] = $menu['footerPages'];
  79. $parameters['items'] = $menu['items'];
  80. $parameters['externalContactUrl'] = $this->getParameter('global.external_contact_url');
  81. $viewsPath = $this->getParameter('kernel.project_dir') . '/templates/';
  82. $customFooterView = 'includes/custom/' . $this->getParameter('network_id') . '/default-footer.html.twig';
  83. if(file_exists($viewsPath . $customFooterView)){
  84. return $this->render('' . $customFooterView, $parameters);
  85. }
  86. $parameters['filigree'] = $filigree;
  87. return $this->render('includes/common/default-footer.html.twig', $parameters);
  88. }
  89. }