src/CMSBundle/Controller/FrontEnd/SiteSettingController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\CMSBundle\Controller\FrontEnd;
  3. use App\BaseBundle\Controller\AbstractController;
  4. use App\CMSBundle\Entity\SiteSetting;
  5. use App\CMSBundle\Service\SiteSettingService;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. /**
  10. * SiteSetting controller.
  11. *
  12. * @Route("/site-setting")
  13. */
  14. class SiteSettingController extends AbstractController
  15. {
  16. private array $ignoredUserAgents = [
  17. "Lighthouse",
  18. "GTmetrix",
  19. ];
  20. /**
  21. * Site Settings Head widget
  22. */
  23. public function siteSettingHead(Request $request, SiteSettingService $settingService): Response
  24. {
  25. $data = $settingService->getData();
  26. if ($this->isRequestFromAnalyticalTool($request)) {
  27. $data[SiteSetting::WEBSITE_HEAD_TAGS] = null;
  28. $data[SiteSetting::GOOGLE_TAG_MANAGER_ID] = null;
  29. $data[SiteSetting::FACEBOOK_CHAT_PAGE_ID] = null;
  30. $data[SiteSetting::FACEBOOK_PIXEL_ID] = null;
  31. }
  32. return $this->render('cms/frontEnd/siteSetting/siteSettingHead.html.twig', [
  33. "data" => $data
  34. ]);
  35. }
  36. /**
  37. * Site Settings Body widget
  38. */
  39. public function siteSettingBody(Request $request, SiteSettingService $settingService): Response
  40. {
  41. $data = $settingService->getData();
  42. if ($this->isRequestFromAnalyticalTool($request)) {
  43. $data[SiteSetting::WEBSITE_HEAD_TAGS] = null;
  44. $data[SiteSetting::GOOGLE_TAG_MANAGER_ID] = null;
  45. $data[SiteSetting::FACEBOOK_CHAT_PAGE_ID] = null;
  46. $data[SiteSetting::FACEBOOK_PIXEL_ID] = null;
  47. }
  48. return $this->render('cms/frontEnd/siteSetting/siteSettingBody.html.twig', [
  49. "data" => $data
  50. ]);
  51. }
  52. private function isRequestFromAnalyticalTool(Request $request): bool
  53. {
  54. $userAgent = $request->headers->get("User-Agent");
  55. if (!$userAgent) {
  56. return true;
  57. }
  58. foreach ($this->ignoredUserAgents as $ignoredUserAgent) {
  59. if (str_contains($userAgent, $ignoredUserAgent)) {
  60. return true;
  61. }
  62. }
  63. return false;
  64. }
  65. }