src/Controller/HomePageController.php line 52

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Manager\InteractiveMapManager;
  4. use App\Service\Internal\HomePageService;
  5. use Psr\Log\LoggerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. class HomePageController extends AbstractController
  11. {
  12. public function index(
  13. Request $request,
  14. InteractiveMapManager $interactiveMapManager,
  15. HomePageService $homePageService
  16. ): Response {
  17. if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED') && $request->query->get('isWidgetKasLogin')) {
  18. return $this->redirect($request->query->get('redirection'));
  19. }
  20. $parameters['activeTab'] = 'journey';
  21. $activeTab = $request->attributes->get('activeTab');
  22. if ($activeTab == 'schedule') {
  23. $parameters['activeTab'] = $activeTab;
  24. $parameters['scheduleTemplate'] = 'schedule';
  25. $parameters['directLink'] = true;
  26. }
  27. if ($activeTab == 'traffic') {
  28. $parameters['activeTab'] = $activeTab;
  29. $parameters['scheduleTemplate'] = 'schedule';
  30. $parameters['directLink'] = true;
  31. }
  32. $interactiveMapIsEnabled = $interactiveMapManager->isEnabled();
  33. if ($activeTab == 'interactiveMap' && $interactiveMapIsEnabled) {
  34. $parameters['activeTab'] = $activeTab;
  35. $parameters['scheduleTemplate'] = 'schedule';
  36. $parameters['directLink'] = true;
  37. }
  38. $session = $request->getSession();
  39. $session->set('context', 'SIM');
  40. $session->set('php_session_id', $request->cookies->get('PHPSESSID'));
  41. $parameters['displayDisruptionWithAjax'] = true;
  42. $parameters = $homePageService->getRenderParameters([], $parameters);
  43. $parameters['isXmlHttpMode'] = true;
  44. $parameters['displayFavorites'] = true;
  45. $parameters['php_session_id'] = $session->get('php_session_id');
  46. $homePageService->getDisruption($parameters);
  47. return $this->render('pages/sim/home.html.twig', $parameters);
  48. }
  49. public function traffic(Request $request, HomePageService $homePageService): Response
  50. {
  51. $parameters['issubnetworks'] = $request->get('issubnetworks');
  52. $homePageService->getDisruption($parameters);
  53. return $this->render('modules/search-widget/traffic-infos/traffic-result.html.twig', $parameters);
  54. }
  55. public function linesAndPoi(InteractiveMapManager $interactiveMapManager): Response
  56. {
  57. $params = $interactiveMapManager->interactiveMapData();
  58. return $this->render('modules/search-widget/interactive-map/form.html.twig', $params);
  59. }
  60. public function getAllLines(InteractiveMapManager $manager): JsonResponse
  61. {
  62. $allLines = $manager->getAllLines();
  63. return new JsonResponse($allLines);
  64. }
  65. public function getLinesBySubnetwork(Request $request, InteractiveMapManager $manager): Response
  66. {
  67. $subnetworId = $request->query->get('subnetwokId');
  68. $lines = [];
  69. if (!empty($subnetworId)) {
  70. $lines = $manager->getLinesBySubnetwork($subnetworId);
  71. }
  72. return $this->render(
  73. 'modules/search-widget/interactive-map/includes/lines.html.twig',
  74. ['lines' => $lines]
  75. );
  76. }
  77. public function message(Request $request, HomePageService $homePageService): Response
  78. {
  79. $parameters['baseUrl'] = 'https://' . $_SERVER['SERVER_NAME'];
  80. $parameters = $homePageService->getRenderParameters();
  81. $parameters['message'] = $request->get('message');
  82. $parameters['feature'] = "";
  83. return $this->render('pages/common/message.html.twig', $parameters);
  84. }
  85. public function outdatedBrowser(Request $request, HomePageService $homePageService): Response
  86. {
  87. $parameters['baseUrl'] = 'https://' . $_SERVER['SERVER_NAME'];
  88. $parameters = $homePageService->getRenderParameters();
  89. return $this->render('pages/common/outdated-browser.html.twig', $parameters);
  90. }
  91. }