src/Controller/Frontend/DefaultController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Frontend;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Detection\MobileDetect;
  9. use App\Entity\GameInfo;
  10. use App\Entity\Video;
  11. #[Route('/{language}/game', requirements: ['language' => 'zh_MO'])]
  12. class DefaultController extends AbstractController
  13. {
  14. private $em;
  15. public function __construct(EntityManagerInterface $em)
  16. {
  17. $this->em = $em;
  18. }
  19. #[Route('/termscondition', name: 'game_pre_activity_rule')]
  20. public function termsConditionAction(Request $request): Response
  21. {
  22. $gameInfo = $this->em->getRepository(GameInfo::class)->findOneBy([
  23. 'name' => $this->getParameter('info_name')
  24. ]);
  25. $tandc = null;
  26. $language = $request->getLocale();
  27. if ($gameInfo) {
  28. $tandc = ($language == 'zh_CN') ? $gameInfo->getTandcCN() : $gameInfo->getTandc();
  29. }
  30. return $this->render('frontend/default/rule.html.twig', [
  31. "tandc" => $tandc,
  32. 'language' => $language
  33. ]);
  34. }
  35. #[Route('/', name: 'game_pre_checkAgent')]
  36. public function checkAgentAction(Request $request)
  37. {
  38. $language = $request->getLocale();
  39. $detect = new MobileDetect;
  40. if (!$detect->isMobile() && !$detect->isTablet()) {
  41. return $this->render('frontend/iframe/index.html.twig', [
  42. 'language' => $language
  43. ]);
  44. }
  45. return $this->redirectToRoute('game_pre_index', ['language' => $language]);
  46. }
  47. #[Route('/index', name: 'game_pre_index')]
  48. public function indexAction(Request $request)
  49. {
  50. $userAgent = $_SERVER['HTTP_USER_AGENT'];
  51. //Block IE AGENT
  52. if (preg_match('/MSIE/i', $userAgent) || preg_match("/Trident\/7.0;(.*)rv:11.0/", $userAgent) || preg_match('/Edge/i', $userAgent)) {
  53. } else {
  54. $gameInfo = $this->em->getRepository(GameInfo::class)->findOneBy([
  55. 'name' => $this->getParameter('info_name')
  56. ]);
  57. if ($gameInfo) {
  58. $current = new \DateTime(date('Y-m-d H:i:s'));
  59. $startDate = $gameInfo->getStartDate();
  60. $endDate = $gameInfo->getEndDate();
  61. $prizeEndDate = $gameInfo->getPrizeRedeemEndDate();
  62. $language = $request->getLocale();
  63. $video_link = $this->em->getRepository(Video::class)->findOneBy(['name'=> 'myTV_video']);
  64. if ($current < $startDate)
  65. {
  66. return $this->render('frontend/error/blankpage2.html.twig', [
  67. "message" => ($language == 'zh_MO') ? $gameInfo->getNotStarted() : $gameInfo->getNotStartedCN(),
  68. "language" => $language
  69. ]);
  70. }
  71. else if ($current > $endDate && $current > $prizeEndDate)
  72. {
  73. return $this->render('frontend/error/blankpage2.html.twig', [
  74. "message" => ($language == 'zh_MO') ? $gameInfo->getPrizeRedeemEnd() : $gameInfo->getPrizeRedeemEndCN(),
  75. "language" => $language
  76. ]);
  77. }
  78. else if ($current > $endDate)
  79. {
  80. return $this->render('frontend/default/message_to_myprize.html.twig', [
  81. "message" => ($language == 'zh_MO') ? $gameInfo->getGameEnd() : $gameInfo->getGameEndCN(),
  82. "language" => $language
  83. ]);
  84. }
  85. else
  86. {
  87. return $this->render('frontend/default/index.html.twig', [
  88. "language" => $language,
  89. "applicationPage" => $gameInfo->getStartGameLink(),
  90. "video_link" => $video_link->getFiles(),
  91. "video_time" => $video_link->getTime()
  92. ]);
  93. }
  94. } else {
  95. $language = $request->getLocale();
  96. return $this->render('frontend/error/blankpage.html.twig', [
  97. "message" => "System Error",
  98. "language" => $language
  99. ]);
  100. }
  101. }
  102. }
  103. #[Route('/download', name: 'game_download')]
  104. public function downloadAction(Request $request): Response
  105. {
  106. $gameInfo = $this->em->getRepository(GameInfo::class)->findOneBy([
  107. 'name' => $this->getParameter('info_name')
  108. ]);
  109. $tandc = null;
  110. $language = $request->getLocale();
  111. if ($gameInfo) {
  112. $tandc = ($language == 'zh_CN') ? $gameInfo->getTandcCN() : $gameInfo->getTandc();
  113. }
  114. return $this->render('frontend/default/download.html.twig', [
  115. "tandc" => $tandc,
  116. 'language' => $language
  117. ]);
  118. }
  119. }